以jquery fileupload为基础编程删除文件

前端之家收集整理的这篇文章主要介绍了以jquery fileupload为基础编程删除文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用blueimp文件上传插件(基本版本)来实现多媒体上传.我正在尝试实现功能,允许用户删除排队的文件进行上传.我不知道如何适当地访问文件数组.每次添加回调时,索引为0,文件数组长度为1(仅包含用户单击删除文件).我添加一个链接为每个文件排队到一个div,这是可点击的,应该删除文件,如果点击.

我的想法是创建一个删除链接文件的索引,并将其从数组中删除,但由于上述问题,索引是永远不正确的.我也尝试过文件名,但是“on”回调中的文件名始终是第一个被选择上传文件 – 一些关闭范围我必须弄清楚.

如何以编程方式从上传队列中删除文件

HTML:

  1. <div id="fileBrowserWrapper">
  2. <form id="myForm" action="#" method="post" enctype="multipart/form-data">
  3. <input id="uploadDocBrowse" type="file" name="files[]" multiple/>
  4. </form>
  5. </div>
  6. <div id="inputFilesBox"></div>
  7. <div id="uploadFilesBox"></div>

并且文件上传JavaScript:

  1. $('#myForm').fileupload({
  2. url: "/SomeHandler",dataType: 'html',autoUpload: false,singleFileUploads: false,replaceFileInput: false,add: function (e,data) {
  3. console.log("Number of files: " + data.files.length);
  4.  
  5. $.each(data.files,function (index,file) {
  6. $('#uploadFilesBox').append("<div class='uploadBox' id='fileDiv_" + file.name + "'><div class='leftEle'><a href='#' id='link_" + index + "' class='removeFile'>Remove</a></div><div class='midEle'>" + file.name + "</div></div>")
  7. .on('click',{ filename: file.name,files: data.files },function(event) {
  8. var uploadFilesBox = $("#uploadFilesBox");
  9. var remDiv = $("#fileDiv_" + event.data.filename);
  10. remDiv.remove();
  11. event.data.files.splice(0,1);
  12. }
  13. });
  14. });
  15.  
  16. data.context = $('#myButton')
  17. .click(function () {
  18. data.submit();
  19. });
  20. });

解决方法

解决了这个这是解决方案的描述:

我找到了我的解决方案,再修改一些.关键是记得我正在回电.所以在删除功能的事件处理程序中,我只是清除了data.files数组,在提交该处理程序时,只有文件数组的长度大于0时才提交.我清理了事件处理函数眼睛更容易HTML不变.

新的JavaScript处理代码

  1. $('#myForm').fileupload({
  2. url: "/SomeUrl",data) {
  3. $.each(data.files,file) {
  4. var newFileDiv = $("<div class='uploadBox' id='fileDiv_" + file.name + "'><div class='leftEle'><a href='#' id='link_" + index + "' class='removeFile'>Remove</a></div><div class='midEle'>" + file.name + "</div></div>");
  5. $('#uploadFilesBox').append(newFileDiv);
  6.  
  7. newFileDiv.find('a').on('click',function (event) {
  8. event.preventDefault();
  9. var uploadFilesBox = $("#uploadFilesBox");
  10. var remDiv = $(document.getElementById("fileDiv_" + event.data.filename));
  11. remDiv.remove();
  12. data.files.length = 0; //zero out the files array
  13. });
  14.  
  15. data.context = newFileDiv;
  16. });
  17.  
  18. $('#myButton')
  19. .click(function () {
  20. if (data.files.length > 0) { //only submit if we have something to upload
  21. data.submit();
  22. }
  23. });
  24. }
  25. });

猜你在找的jQuery相关文章