8

我不确定这是否可能,我正在使用 jQuery 编写自己的文件上传插件,效果很好,但我想做的是通过允许用户从桌面删除文件来增强用户体验进入一个 div 并将该文件附加到我的输入

我有拖放工作,与上传相同,但目前拖放与多个上传是分开的。

所以在我的 html5 drop 函数中,我想做这样的事情:

<div id="dropZone"></div>
<!--Drop area is seperate from the fileUpload below-->
<form enctype="multipart/form-data">
    <input class="clear" name="nonImagefilesToUpload[]"  id="nonImagefilesToUpload" type="file" multiple/>
</form>

this.drop = function(e){
    e.stopPropagation();
    e.preventDefault();
    files = e.dataTransfer.files ; 
    for (var i = 0, file; file = files[i]; i++) {

        //pseudo code
        if ( !file.type.match(settings.imageTypeMatch )) {
            //not an image so I want to append it to my files array
            $('#nonImagefilesToUpload').append( file[i] );
            //hoping this will also trigger my input change


        }else{
            var reader = new FileReader();
            reader.onload = (function(aFile) {
            return function(evt) {
                if (evt.target.readyState == FileReader.DONE) 
                {
                    //code to handle my images
                    //which are uploaded seperate via xhr
                }   
            })(file);//done reading the file

            //read the file
            reader.readAsDataURL(file);
        }
    }


    return false;
};  

如果有人可以提供帮助,将不胜感激,由于证券原因,这可能是不可能的,但我想我会问

4

1 回答 1

4

你是对的。您不能更改file输入字段的值。


编辑:

从 2017 年开始,您可以将拖放的文件设置为文件输入。请参阅在页面上放置文件时如何设置文件输入值?

于 2013-03-04T04:20:08.767 回答