我想只允许上传6张图片,所以这是我的代码:
jQuery('#jquery-wrapped-fine-uploader').fineUploader({
request: {
endpoint: '<?php echo $this->getUrl('shop/functions/submitUploadProductImage') ?>'
},
validation: {
itemLimit:6
}
}).on('complete', function(event, id, fileName, responseJSON) {
if (responseJSON.success) {
jQuery("#images-container").append(
'<div class="productImgContainer border-img">' +
'<img id="productImg'+id+'" class="productImgBig" data-image="'+responseJSON.uploadName+'" data-extension="'+responseJSON.extension+'" src="'+path+'/'+ responseJSON.uploadName +'">'+
'<a class="deleteImage newImage" delete-id="'+id+'"></a>'+
'</div>'
);
var nbImagesProd = jQuery(this).fineUploader('getNetUploads', id);
if (nbImagesProd == 6) {
jQuery(".addButton").hide();
}
}
});
正如您所看到的,我可以通过on.complete函数获取getNetUploads,如果上传了6张图像,我会隐藏按钮。这很好。
但是,我使用自定义删除功能(不是来自fineuploader):
jQuery(document).on('click', '.deleteImage', function(){
//I want to decrease the fineUploader _netUploaded so I can uploaded a new file
})
我尝试在fineupload.js
中设置一个新功能:
setNetUploads: function() {
this._netUploaded--;
}
但我无法在完整回拨之外调用它,因为我没有像getFunction
这样的ID。
那么,如何在任何回调之外修改_netUploaded
变量?
答案 0 :(得分:0)
查看您的代码和问题,仍然不清楚您遇到了什么问题。我可以看到您正在尝试添加自己的API方法,该方法会递减跟踪净上传的内部变量,以便itemLimit
验证按预期工作。如果您必须修改Fine Uploader源,我不清楚为什么您不只是添加API方法并像调用任何其他API方法一样调用它。您可以像这样调用新的API方法:
$('#jquery-wrapped-fine-uploader').fineUploader('setNetUploads');
我建议您使用内置删除文件功能并处理DELETE请求服务器端。在没有很好地理解库的情况下修改Fine Uploader代码可能不是一个好主意,特别是当你最终升级到更新版本的Fine Uploader时。已有一个打开的案例允许删除文件功能使用POST请求,可选。有关详细信息,请参阅案例#801。