PHP多个图像上传

时间:2013-12-10 20:56:05

标签: php

我知道这个问题一遍又一遍地重复..但似乎无法找到解决我问题的方法......

如何创建一个允许用户一次上传xy图像的表单?

这是我的HTML代码:

<form class="pure-form" action="upload.php" enctype="multipart/form-data" method="post">

        <div class="upload">
            <a onclick="select_file()" class="pure-button">Choose a Image</a>
            <input id="image" type="file" name="image[]" multiple="multiple">
        </div>

        <!--image preview-->
        <img src="" style="display:none">

        <input class="pure-button pure-button-primary" type="submit" value="Upload!">
    </form>

这是我的PHP代码:         

$valid_exts = array('jpeg', 'jpg', 'png', 'gif'); // valid extensions
$max_size = 2048 * 1024; // max file size (200kb)
$path = 'uploads/'; // upload directory

if ( $_SERVER['REQUEST_METHOD'] === 'POST' )
{
    if( @is_uploaded_file($_FILES['image']['tmp_name']) )
    {
        // get uploaded file extension
        $ext = strtolower(pathinfo($_FILES['image']['name'], PATHINFO_EXTENSION));
        // looking for format and size validity
        if (in_array($ext, $valid_exts) AND $_FILES['image']['size'] < $max_size)
        {
            // unique file path
            $path = $path . uniqid(). '.' .$ext;
            // move uploaded file from temp to uploads directory
            if (move_uploaded_file($_FILES['image']['tmp_name'], $path))
            {
                $status = 'Image uploaded successfully!';
                $status = $path;
            }
            else {
                $status = 'Upload Fail: Unknown error occurred!';
            }
        }
        else {
            $status = 'Upload Fail: Unsupported file format or It is too large to upload!';
        }
    }
    else {
        $status = 'Upload Fail: File not uploaded!';
    }
}
else {
    $status = 'Bad request!';
}

// echo out json encoded status
echo json_encode(array('status' => $status));
?>

有可能用foreach解决这个问题吗?如果是这样,我该怎么做?

2 个答案:

答案 0 :(得分:1)

尝试此操作(根据需要添加任意数量的文件字段):

    <input type="file" name="image[]" /><br />
    <input type="file" name="image[]" /><br />
    <input type="file" name="image[]" /><br />
    <input type="file" name="image[]" />

腓:

$valid_exts = array('jpeg', 'jpg', 'png', 'gif'); // valid extensions
$max_size = 2048 * 1024; // max file size (200kb)
$path = 'uploads/'; // upload directory

if(isset($_FILES['image'])){
    for($i=0; $i<count($_FILES['image']['name']); $i++){
        if( @is_uploaded_file($_FILES['image']['tmp_name'][$i]) )
            {
                // get uploaded file extension
                $ext = strtolower(pathinfo($_FILES['image']['name'][$i], PATHINFO_EXTENSION));
                // looking for format and size validity
                if (in_array($ext, $valid_exts) AND $_FILES['image']['size'][$i] < $max_size)
                {
                    // unique file path
                    $path = $path . uniqid(). '.' .$ext;
                    // move uploaded file from temp to uploads directory
                    if (move_uploaded_file($_FILES['image']['tmp_name'][$i], $path))
                    {
                        $status = 'Image uploaded successfully!';
                        $status = $path;
                    }
                    else {
                        $status = 'Upload Fail: Unknown error occurred!';
                    }
                }
                else {
                    $status = 'Upload Fail: Unsupported file format or It is too large to upload!';
                }
            }
            else {
                $status = 'Upload Fail: File not uploaded!';
            }
        echo "<p>$status</p>";
    }
}
?>

答案 1 :(得分:0)

 <form class="pure-form" action="upload.php" enctype="multipart/form-data" method="post">

    <div class="upload">
        <a onclick="select_file()" class="pure-button">Choose a Image</a>
        <input id="image" type="file" name="image[1]" multiple="multiple">
<input id="image" type="file" name="image[2]" multiple="multiple">


    </div>

    <!--image preview-->
    <img src="" style="display:none">

    <input class="pure-button pure-button-primary" type="submit" value="Upload!">
   </form>

PHP     

$valid_exts = array('jpeg', 'jpg', 'png', 'gif'); // valid extensions
$max_size = 2048 * 1024; // max file size (200kb)
$path = 'uploads/'; // upload directory

if ( $_SERVER['REQUEST_METHOD'] === 'POST' )
{
if( @is_uploaded_file($_FILES['image1']['tmp_name']) )
{
    // get uploaded file extension
    $ext = strtolower(pathinfo($_FILES['image1']['name'], PATHINFO_EXTENSION));
    // looking for format and size validity
    if (in_array($ext, $valid_exts) AND $_FILES['image1']['size'] < $max_size)
    {
        // unique file path
        $path = $path . uniqid(). '.' .$ext;
        // move uploaded file from temp to uploads directory
        if (move_uploaded_file($_FILES['image1']['tmp_name'], $path))



 if( @is_uploaded_file($_FILES['image2']['tmp_name']) )
  {
    // get uploaded file extension
    $ext = strtolower(pathinfo($_FILES['image2']['name'], PATHINFO_EXTENSION));
    // looking for format and size validity
    if (in_array($ext, $valid_exts) AND $_FILES['image2']['size'] < $max_size)
    {
        // unique file path
        $path = $path . uniqid(). '.' .$ext;
        // move uploaded file from temp to uploads directory
        if (move_uploaded_file($_FILES['image2']['tmp_name'], $path))
        {





            $status = 'Image uploaded successfully!';
            $status = $path;
        }
        else {
            $status = 'Upload Fail: Unknown error occurred!';
        }
       }
      else {
        $status = 'Upload Fail: Unsupported file format or It is too large to upload!';
    }
    }
    else {
    $status = 'Upload Fail: File not uploaded!';
    }
}
else {
$status = 'Bad request!';
}
}}
   // echo out json encoded status
   echo json_encode(array('status' => $status));

  ?>