问题
How can I remove a file from the selected files list in Blueimp plugins before submitting the form to upload. I tried this SO answer but its just remove file from UI not from queue.
Here is my code
$(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 = $('<div/>').appendTo('#FilesListThumb');
$.each(data.files, function (index, file) {
var node = $('<div><h6>X</h6></div>').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($('<span class="text-danger"/>').text("Upload Failed"));
}
}).on('fileuploadfail', function (e, data) {
$.each(data.files, function (index, file) {
var error = $('<span class="text-danger"/>').text('File upload failed.');
$(data.context.children()[index])
.append('<br>')
.append(error);
});
}).on("fileuploaddone",function(e,data){
// sendData = false;
alert("done");
});
});
here when I click h6 thumbnail is removed from ui only not from the list of ifles
回答1:
Every BlueImp callback have 2 parameters: an event
and a data
object.
The data
object contains a files
array which you can edit in order to alter files that will be uploaded. So if you delete one of these array elements (array.pop
, or other methods...) before submitting your request, it can be considered as removed.
回答2:
Maybe helps additionally click event(s) for button UploadPhotos to delete/unbind.
$("#UploadPhotos").unbind("click")
来源:https://stackoverflow.com/questions/21337300/blueimp-file-upload-remove-a-file-from-file-list-before-upload