如何使用php上传数组图像tmp名称?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (47)

我尝试使用move_upload_file函数上传数组图像,但收到错误

HTML conde

<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为字符串,给定的数组为

代码有什么问题?

提问于
用户回答回答于

因为gallery_images[]使用方括号命名表单元素,所以表单将向服务器发送一个数组而不是单个元素。你应该给它命名gallery_images,除非你想要一次上传多个文件。

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

要上传多个图像,你需要在$_FILES["gallery_images"]["tmp_name"]数组中选择索引。你已经$row在foreach循环中拥有了key(),所以就像它一样简单$_FILES["gallery_images"]["tmp_name"][$row]

下次你可以检查数组中的内容。只是var_dump($_FILES["gallery_images"]["tmp_name"])为了看看阵列的结构。为了便于阅读,为了便于阅读,你可以放入内部<pre></pre>标签。你也可以用print_r而不是var_dump

扫码关注云+社区

领取腾讯云代金券