如何使用php

时间:2018-07-07 13:58:28

标签: php html image-uploading

我试图通过使用move_upload_file函数上传阵列图像,但出现错误

HTML内容

<input type="file" name="gallery_images[]" class="custom-file-input" name="slider_image" placeholder="Upload Image" >

PHP代码

foreach ($_FILES['gallery_images']["name"] as $row=>$name){
                $gallery_images = $name;                                
                $images_content = explode(".", $gallery_images);
                $gallery_imagename = round(microtime(true)) . '.' . end($images_content);               
                move_uploaded_file($_FILES["gallery_images"]["tmp_name"], "./ThumbnailImage/" . $gallery_imagename);

         }  

错误

  

警告:move_uploaded_file()期望参数1为字符串,数组为

代码有什么问题?

1 个答案:

答案 0 :(得分:1)

因为您已将表单元素gallery_images[]命名为方括号,所以该表单会将一个数组而不是单个元素发送到服务器。您应该将其命名为gallery_images,除非您当然不希望一次上传多个文件。

因为您发布了一个数组,所以$_FILES["gallery_images"]["tmp_name"]将成为一个数组。该数组将包含已上传文件的所有临时名称。

要上传多张图像,您需要在$_FILES["gallery_images"]["tmp_name"]数组中选择索引。 您已经在foreach循环中有了键($row),因此就像$_FILES["gallery_images"]["tmp_name"][$row]

一样简单

下次您可以检查阵列中的内容。只需var_dump($_FILES["gallery_images"]["tmp_name"])即可查看数组的结构。为了美观打印,可以在<pre></pre>标记内放入。您也可以使用print_r代替var_dump