网站搜索

jquery - 使用 Javascript 在上传前移除选定的文件


假设我有一个表单,允许用户上传多张图片,并附带一个选项,如果他们不想上传某张特定的照片,可以将其移除。

是否可以从文件对象中删除他们移除的值(例如,不想上传的文件)?

答案#1

FileList 没有用于移除条目的 API:

https://developer.mozilla.org/en/DOM/FileList

然而,你可以使用 XHR2 和 AJAX 重构文件上传器,并在其中过滤内容。这意味着执行 XHR2 和 AJAX 上传,并不适合传统的 <form> 上传。

https://developer.mozilla.org/zh-CN/docs/Web/Guide/Using_files_from_web_applications

答案#2

如果你使用带有一组标准文件输入的标准表单,那么你可以像这样做 http://jsfiddle.net/thXre/

$(document).ready(function(){
    $('.remove').click(function(){
        $(this).closest('div').slideUp('slow', function(){$(this).remove();});
    });        
});

以及 HTML 代码:

<div>
 <input type='file' name='files[]'> <img src='x.gif' class='remove'>
</div>
<div>
 <input type='file' name='files[]'> <img src='x.gif' class='remove'>
</div>
<div>
 <input type='file' name='files[]'> <img src='x.gif' class='remove'>
</div>