我试图通过使用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为字符串,数组为
代码有什么问题?
答案 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
。