【发布时间】:2014-06-25 15:56:59
【问题描述】:
我查找了多个文件上传脚本,所以我偶然发现了这个:http://techstream.org/Web-Development/PHP/Multiple-File-Upload-with-PHP-and-MySQL 我知道这是一个旧帖子,但它工作得很好。我删除了 SQL 部分,因为我不需要它。因此,当您查看脚本时,它只会将多个文件上传到服务器,我尝试显示上传的图像,如下所示:
if(isset($_FILES['files'])){
$errors= array();
foreach($_FILES['files']['tmp_name'] as $key => $tmp_name ){
$file_name = $key.$_FILES['files']['name'][$key];
$file_size =$_FILES['files']['size'][$key];
$file_tmp =$_FILES['files']['tmp_name'][$key];
$file_type=$_FILES['files']['type'][$key];
if($file_size > 2097152){
$errors[]='File size must be less than 2 MB';
}
$desired_dir="../img/full-size";
if(empty($errors)==true){
if(is_dir($desired_dir)==false){
mkdir("$desired_dir", 0700); // Create directory if it does not exist
}
if(is_dir("$desired_dir/".$file_name)==false){
move_uploaded_file($file_tmp,"$desired_dir/".$file_name);
}else{ // rename the file if another one exist
$new_dir="$desired_dir/".$file_name.time();
rename($file_tmp,$new_dir) ;
}
}else{
print_r($errors);
}
}
if(empty($error)){
echo "Success";
echo "<img src='" . $desired_dir . '/' . $file_name . "'>";
echo "<img src='" . $desired_dir . '/' . $file_name . "'>";
}
}
HTML:
<form action="" method="POST" enctype="multipart/form-data">
<input type="file" name="files[]" multiple/>
<input type="submit"/>
</form>
这有效,但仅适用于一个图像,而不是数组。有什么帮助吗?
【问题讨论】:
-
为什么最后这么多
}? -
此时输出什么?
-
你正在迭代
$_FILES['files']['tmp_name'],所以如果你有多个图像,这个键不存在,你需要迭代$_FILES -
print_r($_FILES);它给了什么?
-
输出只是一张图片两次
标签: php file-upload