一个输入的多图像上传 PHP 表单

新手上路,请多包涵

一段时间以来,我一直在努力完成这项工作。但我似乎无法让它工作。我想要一个只使用一个输入的多图像上传表单。

这是我的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++)
    {

使用相应的右括号,它似乎工作正常。图片上传完美。但问题是,它只允许我上传一个。

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

原文由 clvxc 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 384
2 个回答
$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 多个文件上传带有进度条和验证(点击这里下载源代码)

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

原文由 Kalpesh Rajai 发布,翻译遵循 CC BY-SA 4.0 许可协议

foreach ($_FILES['image']['name'] as $key => $val) {
$allowTypes = array('jpg', 'png', 'jpeg', 'gif');
$fileName = basename($_FILES['image']['name'][$key]);
$tempName = basename($_FILES['image']['tmp_name'][$key]);
$fileExt = strtolower(pathinfo($fileName, PATHINFO_EXTENSION));
$fileNameFinal = $empID . '_' . date('Y-m-d_His') . '.' . $fileExt;

if (in_array($fileExt, $allowTypes)) {
    if (move_uploaded_file($_FILES['image']['tmp_name'][$key], 'uploads/' . $fileNameFinal)) {

        $insert = $conn->query("INSERT INTO apimultiimage (EmployeeID, token, image) VALUES('" . $empID . "','" . $token . "','" . $fileNameFinal . "')");

        $result['msg'] = 'Inserted.';
        $result['status'] = 1;
    } else {
        $result['msg'] = 'Not Inserted.';
        $result['status'] = 0;
    }
} else {
    $result['msg'] = 'Please select a file type jpg / jpeg / png / gif to upload.';
    $result['status'] = 0;
}

}

原文由 Vinod Kumar 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题