多个输入文件上传

时间:2014-12-05 19:40:40

标签: php file-upload

我正在尝试创建一个上传5张图片的表单的一部分。目前我只是想修复图像的验证。最多可以上传5张图片,表格中包含5个输入字段(我知道你可以在一个输入中上传多个文件,但设计是这样设计的,不是我的选择)。

首先,我检查图像复选框是否已被选中(运行正常),然后基本上我尝试检查是否有图像上传,然后对于每个图像,我尝试运行一些基本验证(文件大小和类型)。

$imagesArray = array("order-desc-img", "order-desc-img-1","order-desc-img-2", 
               "order-desc-img-3", "order-desc-img-4"); //names of the file inputs

   if (isset($_POST['images'])){ //check checkbox
            $imagesQuantity = 1; //update variable to show it has been checked

        foreach ($imagesArray as $image) { //loop through each item in array
                $image_target_dir = "../uploads/images/";
                $image_name = basename($_FILES[$image]["name"]);
                $image_target_file = $image_target_dir . date('m-d-Y_hia') . '_' . $image_name;

            if ($image_name != ''){ //if no name from file input
                $imageFileType = pathinfo($image_target_file,PATHINFO_EXTENSION);

                if ($_FILES[$image]["size"] > 5000000000) {
                    $errors++;
                };//place holder file size check

                if($imageFileType != "jpg" && $imageFileType != "jpeg" && $imageFileType != "png") {
                    $errors++;
                };//placeholder file type check
             }
        }

};

但是,如果我只尝试上传一张图片,则验证失败。如果我尝试上传全部5个,我不确定会发生什么,它只会在验证页面上停止,并且永远不会到达失败或成功的标题。调试时我不是很好,所以我不知道如何弄清楚我做错了什么。我是以错误的方式去做的吗?

任何帮助都将不胜感激。

0 个答案:

没有答案