如何重置blueimp jQuery fileupload插件?
要点:我怎样才能重置一个blueimp jQuery fileupload插件,以便它认为没有上传文件?
我的情景
- 我有一个只允许上传一个文件的上传表单。
- 上传该文件后,将对其进行分析。 此时,用户可以选择单击“取消”按钮,在此重置我的视图模型的其余部分。
- 当用户点击取消时,我想重置用户上传的文件数,因为它们基本上是刚开始的。
- 我仍然希望在重置后应用最大的一个文件。
目前发生了什么
- 上传一个文件
- 单击取消按钮,一切都重置(即我重新初始化文件上传控件)
- 尝试上传文件,但仍然告诉我们已达到最大文件数。
我试过的
我尝试调用fileupload(’destroy’)然后重新初始化,但似乎没有结果(我希望破坏也会破坏实例的跟踪)。
我的问题:
- 销毁/重新初始化/重置上传控件的最佳方法是什么,好像它是从头开始的?
- 如果没有,有没有办法以编程方式让blueimp认为零文件已经上传后,有效地重置它? 在此先感谢您提供任何帮助!
关于版本的说明:
仅供参考,我在v8.8.1上 – 我宁愿不升级,因为一位同事以某种特定的方式改变了一些代码 – 呃。 我们计划在预定日期删除此自定义和升级。 如果我必须更新以解决此问题,请随时告诉我,因为这是完全公平的。
更新:一些代码
页面上的第一个文件上传控件:
页面上的第二个文件上传控件:
我可以使用以下方法清除第一个控件:
$("tbody.files").empty();
大概是因为该文件已经在那个时候上传了(这很好)。
但是,这不适用于第二种forms。 我试过了:
$("#detailsFileUploadForm").find('.cancel').click();
这使得项目从页面中消失,但是在添加其他文件时它们会重新出现。
我也试过$("#detailsFileUploadForm").fileupload('destroy')
没有成功(大概是因为它不处理这些函数而且更多的是关于绑定。
对此的答案比我预期的要简单得多:
$("table tbody.files").empty();
以前,我认为我做得太多了 – 试图销毁/重置容器也不行。
使用这一行代码,列表似乎重置,据我所知,所有代码都运行良好。
这是重置jquery-fileupload的理想解决方案
在文件“main.js”中只需删除或评论加载现有文件脚本,如下所示:
if (window.location.hostname === 'blueimp.github.io') { // Demo settings: $ ('# fileupload'). fileupload ('option', { url: '//jquery-file-upload.appspot.com/', // Enable image resizing, except for Android and Opera, // which actually support image resizing, but fail to // send Blob objects via XHR requests: disableImageResize: /Android(?!.*Chrome)|Opera/ .test (window.navigator.userAgent) maxFileSize: 999000, acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i }); // Upload server status check for browsers with CORS support: if ($ .support.cors) { $ .Ajax ({ url: '//jquery-file-upload.appspot.com/', type: 'HEAD' }). fail (function () { $ ('') .text ('Upload server currently unavailable -' + new Date ()) .appendTo ( '# fileupload'); }); } } else { // Load existing files: / * $ ('# fileupload'). addClass ('fileupload-processing'); $ .Ajax ({ // Uncomment the following to send cross-domain cookies: // xhrFields: {withCredentials: true}, url: $ ('# fileupload'). fileupload ('option', 'url') dataType: 'json', context: $ ('# fileupload') [0] }). always (function () { $ (This) .removeClass ( 'fileupload-processing'); }). done (function (result) { $ (this) .fileupload ('option', 'done') .call (this, $ .Event ('done'), {result: result}); }); * /}
所以你必须清除或评论部分“//加载现有文件”
- 我应该返回什么来响应blueimp / jquery.file-upload-ui的删除事件上的show error消息
- 当动态创建文件输入时,jQuery文件上载不起作用
- Blueimp画廊同时包含图像和YouTubevideo
- Blueimp FileUpload:返回responseText时出现fileuploadsubmit错误
- 无法让jquery文件上传器出现在页面上
- 如何在blueimp Basic中上传开始之前从队列中删除文件以停止上传?
- jQuery文件上传(Blue imp)Symfony 2 405方法不允许
- Fileupload多次上传文件
- blueimp jQuery-File-Upload – 如何在没有附加文件的情况下提交表单?