将所选文件附加到输入

时间:2015-03-16 11:12:45

标签: jquery file-upload image-uploading

我有一个选择了多个文件的输入,他们在浏览器中预览它们:

<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张图片。

1 个答案:

答案 0 :(得分:0)

这是因为当您第二次选择文件时,之前添加的文件将消失,因此服务器无法使用这些文件。

您可以使用Add more files功能实现代码来实现此目的。