Blueimp文件上传:上传前从文件列表中删除文件

在提交要上载的表单之前,如何从Blueimp插件中的选定文件列表中删除文件。 我尝试了这个SO答案,但它只是从UI中删除文件而不是从队列中删除。

这是我的代码

$(function(){ $("#UploadPhotos").click(function(){ $("#ItemPhotos").click(); }); $('#ItemPhotos').fileupload({ url: "${pageContext.servletContext.contextPath}/XYZ", //dataType: 'json', autoUpload: false, acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i, maxFileSize: 5000000, // 5 MB // 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), previewMaxWidth: 171, singleFileUploads:false, previewMaxHeight: 180, previewCrop: true }).on('fileuploadadd', function (e, data) { data.context = $('
').appendTo('#FilesListThumb'); $.each(data.files, function (index, file) { var node = $('
X
').addClass("thumbnail-ib"); node.appendTo(data.context); node.find("h6").click(function(){ node.remove(); }); }); $("#itemSellForm").submit(function(){ data.formData = $("#itemSellForm").serializeArray(); data.submit(); return false; }); }).on('fileuploadprocessalways', function (e, data) { var index = data.index, file = data.files[index], node = $(data.context.children()[index]); if (file.preview) { node .addClass("thumbnail") .append(file.preview); } if (file.error) { node .addClass("thumbnail") .append($('').text("Upload Failed")); } }).on('fileuploadfail', function (e, data) { $.each(data.files, function (index, file) { var error = $('').text('File upload failed.'); $(data.context.children()[index]) .append('
') .append(error); }); }).on("fileuploaddone",function(e,data){ // sendData = false; alert("done"); }); });

这里当我点击h6缩略图从ui中删除时,不会从ifles列表中删除

每个BlueImp回调都有2个参数:一个event和一个data对象。

data对象包含一个files数组,您可以编辑该数组以更改将要上载的文件。 因此,如果您在提交请求之前删除其中一个数组元素( array.pop或其他方法…),则可以将其视为已删除

也许有助于额外点击事件按钮UploadPhotos删除/解除绑定。

 $("#UploadPhotos").unbind("click")