当文件[]被多次打开时,先前的上载将被删除

时间:2017-03-20 08:02:19

标签: javascript php jquery image file-upload

我正在我的表单中创建并使用通过ajax提交的自定义图像上传器 - 一切都很完美。

我允许用户上传多张图片,例如:

<input type="file" name="files[]" accept="image/*" class="files-data" id="upload_images" multiple="">

我面临的问题是当用户点击&#34;图片上传按钮&#34;多次,每次输入(先前上传的图像的数组)被重置。

因此,如果用户上传了3张图片,那就太好了 - 这很好。但是,如果他们决定再次打开文件上传并上传另一张图片,原来的3个文件就不见了。

我不是在寻找一个插件来执行此操作,我知道这可以通过我见过的其他图像上传器完成。

当多个输入字段多次打开时,您知道如何维护以前上传的图像吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

这是HTML的默认行为。您需要通过javascript / jQuery管理这些上传的文件,以便维护用户选择,并且您尝试从中逃脱的插件将为您执行此操作:)

答案 1 :(得分:0)

我通过循环上传的图像并在每次上传新文件时将它们存储到数组中来解决这个问题。我的问题是我做的事情完全不同,每次用户上传更多文件时都会覆盖文件。

一些常识,坐在这里思考一段时间帮我解决了这个问题:)

MyForm = {}; // empty array
MyForm.userUploads = []; // empty object


    $('.add-listing-photos input[type="file"]').on('change', function() {

        // Get the files.
        var files = $(this)[0].files;

        // For each file, append it onto the end of our array.
        for( var key in files ) {
            if( typeof( files[key] ) === 'object' ) {
                MyForm.userUploads.push( files[key] );
            }
        }

        console.log(MyForm.userUploads);

    });

然后通过我的ajax请求发送了这个。