0

我只想上传 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.

那么,如何_netUploaded在任何回调之外修改变量?

4

1 回答 1

0

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

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

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

于 2013-05-01T15:34:52.203 回答