我有一个选择了多个文件的输入,他们在浏览器中预览它们:
<input type="file" name="imageUploader[]" id="imageUploader" multiple/>
预览使用jQuery:
<script>
$(document).ready(function()
{
function readURL(input)
{
if (input.files)
{
var html = '';
for(i = 0; i < input.files.length ; i++)
{
var reader = new FileReader();
reader.onload = function (e)
{
html = '<img src="'+ e.target.result +'"/>';
$('.reviewUpload').after(html);
}
reader.readAsDataURL(input.files[i]);
}
}
}
$("#imageUploader").change(function(e)
{
alert(this.files.length);
//submit the form here
readURL(this);
});
})
</script>
并通过PHP从浏览器上传进程:
$img = $_FILES["imageUploader"];
//count how many file selected
$count = count($_FILES['productImage']['name']);
//Move image in order to folder
for($i = 0; $i< $count; $i++)
{
$tmp = $img["tmp_name"];
move_uploaded_file($img["tmp_name"][$i],"/img/product/".$i.".jpg");
}
假设我选择了前3张图片,浏览器将预览3张图片。
在第二次单击以选择文件时,我选择2图像。
将它们提交给服务器后,服务器只接收我选择的最后2张图像。
如何在浏览器中将最后一个图像添加到$ _FILES []数组? 如果我想要正常工作,服务器将收到5张图片。
答案 0 :(得分:0)
这是因为当您第二次选择文件时,之前添加的文件将消失,因此服务器无法使用这些文件。
您可以使用Add more files
功能实现代码来实现此目的。