我正在尝试使用php将多个图像上传到文件夹中。代码可以打印出文件名,这意味着我得到了文件,但现在它没有上传它们,我没有得到任何错误:下面是我的代码
<?php
$target = "image_uploads/";
if(isset($_FILES['FILE_NAME'])){
foreach($_FILES['FILE_NAME']['tmp_name']as $key => $error ){
print_r($key);
$file_upload = $key.$_FILES['FILE_NAME']['name'][$key];
#print image names
echo $file_upload.'</br>';
move_uploaded_file($file_upload,$target);
}
}
?>
答案 0 :(得分:2)
在目标中你也必须提供文件名。请使用以下代码
$target = "image_uploads/";
if(isset($_FILES['FILE_NAME'])){
foreach($_FILES['FILE_NAME']['tmp_name'] as $key => $error ){
print_r($key);
$file_upload = $key.$_FILES['FILE_NAME']['name'][$key];
print image names
echo $file_upload.'</br>';
move_uploaded_file($file_upload,$target.$_FILES['FILE_NAME']['name']);
}
}
答案 1 :(得分:1)
我认为问题出在foreach循环中。
foreach ($_FILES['FILE_NAME']['tmp_name'] as $key => $val) {
// this loops through the tmp_name of $_FILES['FILE_NAME']
// which is a string
}
我认为你的意思是:
foreach ($_FILES as $index => $fileArray) {
$tmpName = $fileArray['tmp_name'];
echo "File at key $index is temporarily uploaded at $tmpName";
}
上面的代码将遍历所有上传的文件并打印出当前的文件名。
答案 2 :(得分:0)
您的目标文件夹可能无法写入。
我也认为,你没有得到错误的原因是,你有以下几点:
print_r($key);
Yous应该:
print_r($error);
答案 3 :(得分:0)
这可能有多种原因:
在尝试将文件从临时位置移动到目标并且必须也可写之前,目标文件夹必须存在
move_uploaded_file将第二个参数作为文件名后跟目录名,因此它可以是:target folder / user.file.name.ext
如果要上传多个文件,则必须访问$ _FILES,如链接所示:http://php.net/manual/en/features.file-upload.multiple.php
对于您可能遇到的php错误消息,这里有一个列表:http://php.net/manual/en/features.file-upload.errors.php