Fineuploader:在extern函数上更改_netUploaded

时间:2013-05-01 15:02:07

标签: jquery fine-uploader

我想只允许上传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变量?

1 个答案:

答案 0 :(得分:0)

查看您的代码和问题,仍然不清楚您遇到了什么问题。我可以看到您正在尝试添加自己的API方法,该方法会递减跟踪净上传的内部变量,以便itemLimit验证按预期工作。如果您必须修改Fine Uploader源,我不清楚为什么您不只是添加API方法并像调用任何其他API方法一样调用它。您可以像这样调用新的API方法:

$('#jquery-wrapped-fine-uploader').fineUploader('setNetUploads');

我建议您使用内置删除文件功能并处理DELETE请求服务器端。在没有很好地理解库的情况下修改Fine Uploader代码可能不是一个好主意,特别是当你最终升级到更新版本的Fine Uploader时。已有一个打开的案例允许删除文件功能使用POST请求,可选。有关详细信息,请参阅案例#801