我尝试使用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为字符串,给定的数组为
代码中的错误在哪里?
发布于 2018-07-07 22:58:46
因为您已经将表单元素命名为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
。
https://stackoverflow.com/questions/51223903
复制相似问题