首页 文章

具有一个输入的多图像上载 PHP 表单

提问于
浏览
12

我一直试图让这项工作相当长一段时间。但我似乎无法使其发挥作用。我想要一个只有一个输入的多图像上传表格。

这是我的 upload.php

<?php
include("../include/session.php");

session_start();
$allowedExts = array("jpeg", "jpg", "png", "gif");
$extension = end(explode(".", $_FILES["upload"]["name"]));

if(isset($_FILES['upload']['tmp_name']))
{
    for($i=0; $i < count($_FILES['upload']['tmp_name']);$i++)
    {

        if (($_FILES["upload"]["name"] < 90000000000000000)
            && in_array($extension, $allowedExts)) {
                if ($_FILES["upload"]["error"] > 0)
                {
                    header('location: '.$error); die;
                }
                else
                {

                    if (file_exists("../icons/".$_SESSION["username"] ."/" . $_FILES["upload"]["name"]))
                    {
                    echo "error";
                    }
                    else
                    {
                        if(!is_dir("../icons/". $_SESSION["username"] ."/")) {
                            mkdir("../icons/". $_SESSION["username"] ."/");
                        }

                        $temp = explode(".",$_FILES["upload"]["name"]);
                        $file = rand(1,999999999999) . '.' .end($temp);

                        move_uploaded_file($_FILES["upload"]["tmp_name"], "../icons/". $_SESSION["username"] ."/". $file);  
                    }
                }
            }
        } else {
            echo "yep error";
        }
    }
} 
?>

如果我拿出线条

if(isset($_FILES['upload']['tmp_name']))
{
    for($i=0; $i < count($_FILES['upload']['tmp_name']);$i++)
    {

使用相应的闭合支架,似乎工作正常。图像上传完美。但问题是,它只允许我上传一个。

请真的需要你的专业知识。谢谢

5 回答

  • 39
    extract($_POST);
    $error=array();
    $extension=array("jpeg","jpg","png","gif");
    foreach($_FILES["files"]["tmp_name"] as $key=>$tmp_name) {
        $file_name=$_FILES["files"]["name"][$key];
        $file_tmp=$_FILES["files"]["tmp_name"][$key];
        $ext=pathinfo($file_name,PATHINFO_EXTENSION);
    
        if(in_array($ext,$extension)) {
            if(!file_exists("photo_gallery/".$txtGalleryName."/".$file_name)) {
                move_uploaded_file($file_tmp=$_FILES["files"]["tmp_name"][$key],"photo_gallery/".$txtGalleryName."/".$file_name);
            }
            else {
                $filename=basename($file_name,$ext);
                $newFileName=$filename.time().".".$ext;
                move_uploaded_file($file_tmp=$_FILES["files"]["tmp_name"][$key],"photo_gallery/".$txtGalleryName."/".$newFileName);
            }
        }
        else {
            array_push($error,"$file_name, ");
        }
    }
    

    你必须检查你的 HTML 代码

    <form action="create_photo_gallery.php" method="post" enctype="multipart/form-data">
        <table width="100%">
            <tr>
                <td>Select Photo (one or multiple):</td>
                <td><input type="file" name="files[]" multiple/></td>
            </tr>
            <tr>
                <td colspan="2" align="center">Note: Supported image format: .jpeg, .jpg, .png, .gif</td>
            </tr>
            <tr>
                <td colspan="2" align="center"><input type="submit" value="Create Gallery" id="selectedButton"/></td>
            </tr>
        </table>
    </form>
    

    好的链接:

    PHP 单文件上传有不同的基本解释.

    使用验证上传 PHP 文件

    通过验证上传 PHP 多个文件(点击此处下载源代码)

    PHP/jQuery 使用 ProgressBar 和验证上传多个文件(点击此处下载源代码)

    如何在 PHP 中上传文件并存储在 MySql 数据库中(点击此处下载源代码)

  • 1

    多个图像上传使用 php 完整源代码和预览可在下面的链接。
    示例代码:

    if (isset($_POST['submit'])) {
        $j = 0; //Variable for indexing uploaded image 
    
        $target_path = "uploads/"; //Declaring Path for uploaded images
        for ($i = 0; $i < count($_FILES['file']['name']); $i++) { //loop to get individual element from the array
    
            $validextensions = array("jpeg", "jpg", "png"); //Extensions which are allowed
            $ext = explode('.', basename($_FILES['file']['name'][$i])); //explode file name from dot(.) 
            $file_extension = end($ext); //store extensions in the variable
    
            $target_path = $target_path.md5(uniqid()).
            ".".$ext[count($ext) - 1]; //set the target path with a new name of image
            $j = $j + 1; //increment the number of uploaded images according to the files in array       
    
            if (($_FILES["file"]["size"][$i] < 100000) //Approx. 100kb files can be uploaded.
                && in_array($file_extension, $validextensions)) {
                if (move_uploaded_file($_FILES['file']['tmp_name'][$i], $target_path)) { //if file moved to uploads folder
                    echo $j.
                    ').<span id="noerror">Image uploaded successfully!.</span>

    '; } else { //if file was not moved. echo $j. ').<span id="error">please try again!.</span>

    '; } } else { //if file size and file type was incorrect. echo $j. ').<span id="error">***Invalid file Size or Type***</span>

    '; } } }

    http://www.allinworld99.blogspot.com/2015/05/php-multiple-file-upload.html

  • 1
    <?php
    if(isset($_POST['btnSave'])){
        $j = 0; //Variable for indexing uploaded image 
    
        $file_name_all="";
    
        $target_path = "uploads/"; //Declaring Path for uploaded images
    
        //loop to get individual element from the array
        for ($i = 0; $i < count($_FILES['file']['name']); $i++) {
    
            $validextensions = array("jpeg", "jpg", "png");  //Extensions which are allowed
            $ext = explode('.', basename($_FILES['file']['name'][$i]));//explode file name from dot(.) 
            $file_extension = end($ext); //store extensions in the variable
            $basename=basename($_FILES['file']['name'][$i]);
            //echo"hi its base name".$basename;
            $target_path = $target_path .$basename;//set the target path with a new name of image
            $j = $j + 1;//increment the number of uploaded images according to the files in array       
    
            if (($_FILES["file"]["size"][$i] < (1024*1024)) //Approx. 100kb files can be uploaded.
            && in_array($file_extension, $validextensions)) {
                if (move_uploaded_file($_FILES['file']['tmp_name'][$i], $target_path)) {//if file moved to uploads folder
                    echo $j. ').<span id="noerror">Image uploaded successfully!.</span>

    '; /***********************************************/ $file_name_all.=$target_path."*"; $filepath = rtrim($file_name_all, '*'); //echo"<img src=".$filepath." >"; /*************************************************/ } else {//if file was not moved. echo $j. ').<span id="error">please try again!.</span>

    '; } } else {//if file size and file type was incorrect. echo $j. ').<span id="error">***Invalid file Size or Type***</span>

    '; } } $qry="INSERT INTO `eb_re_about_us`(`er_abt_us_id`, `er_cli_id`, `er_cli_abt_info`, `er_cli_abt_img`) VALUES (NULL,'$b1','$b5','$filepath')"; $res = mysql_query($qry,$conn); if($res) echo "

    Client contact Person Information Details Saved successfully"; //header("location: nextaddclient.php"); //exit(); else echo "

    Client contact Person Information Details not saved successfully"; } ?>

    这里**$file_name_all$filepath**获得 1 个 uplode 文件名 2 次?

  • 0

    PHP 代码

    <?php
    error_reporting(0);
    session_start();
    include('config.php');
    //define session id
    $session_id='1'; 
    define ("MAX_SIZE","9000"); 
    function getExtension($str)
    {
             $i = strrpos($str,".");
             if (!$i) { return ""; }
             $l = strlen($str) - $i;
             $ext = substr($str,$i+1,$l);
             return $ext;
    }
    
    //set the image extentions
    $valid_formats = array("jpg", "png", "gif", "bmp","jpeg");
    if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST") 
    {
    
        $uploaddir = "uploads/"; //image upload directory
        foreach ($_FILES['photos']['name'] as $name => $value)
        {
    
            $filename = stripslashes($_FILES['photos']['name'][$name]);
            $size=filesize($_FILES['photos']['tmp_name'][$name]);
            //get the extension of the file in a lower case format
              $ext = getExtension($filename);
              $ext = strtolower($ext);
    
             if(in_array($ext,$valid_formats))
             {
               if ($size < (MAX_SIZE*1024))
               {
               $image_name=time().$filename;
               echo "<img src='".$uploaddir.$image_name."' class='imgList'>";
               $newname=$uploaddir.$image_name;
    
               if (move_uploaded_file($_FILES['photos']['tmp_name'][$name], $newname)) 
               {
               $time=time();
                   //insert in database
               mysql_query("INSERT INTO user_uploads(image_name,user_id_fk,created) VALUES('$image_name','$session_id','$time')");
               }
               else
               {
                echo '<span class="imgList">You have exceeded the size limit! so moving unsuccessful! </span>';
                }
    
               }
               else
               {
                echo '<span class="imgList">You have exceeded the size limit!</span>';
    
               }
    
              }
              else
             { 
                 echo '<span class="imgList">Unknown extension!</span>';
    
             }
    
         }
    }
    
    ?>
    

    Jquery 代码

    <script>
     $(document).ready(function() { 
    
                $('#photoimg').die('click').live('change', function()            { 
    
                    $("#imageform").ajaxForm({target: '#preview', 
                         beforeSubmit:function(){ 
    
                        console.log('ttest');
                        $("#imageloadstatus").show();
                         $("#imageloadbutton").hide();
                         }, 
                        success:function(){ 
                        console.log('test');
                         $("#imageloadstatus").hide();
                         $("#imageloadbutton").show();
                        }, 
                        error:function(){ 
                        console.log('xtest');
                         $("#imageloadstatus").hide();
                        $("#imageloadbutton").show();
                        } }).submit();
    
                });
            }); 
    </script>
    
  • 0

    Multipal 图像与其他 taBLE 一起上传$sql1 =“INSERT INTO event(title”VALUES('$title')“;

    $result1 = mysqli_query($connection,$sql1) or die(mysqli_error($connection));
            $lastid= $connection->insert_id;
            foreach ($_FILES["file"]["error"] as $key => $error) {
                if ($error == UPLOAD_ERR_OK ){
                    $name = $lastid.$_FILES['file']['name'][$key];
                    $target_dir = "photo/";
                    $sql2 = "INSERT INTO photos(image,eventid) VALUES ('".$target_dir.$name."','".$lastid."')";
                    $result2 = mysqli_query($connection,$sql2) or die(mysqli_error($connection));
                    move_uploaded_file($_FILES['file']['tmp_name'][$key],$target_dir.$name);
                }
            }
    

    以及如何获取

    $query = "SELECT * FROM event ";
    $result = mysqli_query($connection,$query) or die(mysqli_error());
    
      if($result->num_rows > 0) {
          while($r = mysqli_fetch_assoc($result)){
            $eventid= $r['id'];
            $sqli="select id,image from photos where eventid='".$eventid."'";
            $resulti=mysqli_query($connection,$sqli);
            $image_json_array = array();
            while($row = mysqli_fetch_assoc($resulti)){
                $image_id = $row['id'];
                $image_name = $row['image'];
                $image_json_array[] = array("id"=>$image_id,"name"=>$image_name);
            }
            $msg1[] = array ("imagelist" => $image_json_array);
    
          }
    

相关问题