2

我正在使用fineuploader 3.2版。我有多个fineuploader实例嵌入在这样的单个HTML页面上

<div id="file-uploader_1" class="uploader">
<div id="file-uploader_2" class="uploader">

这就是我附加fineuploader的方式

$('.uploader').fineUploader({
request: {
    endpoint: './uploadfile',
    params: {
    imageid: function() {
        return this.id;
     }
    }
},
multiple: false,
validation: {
    allowedExtensions: ['jpeg', 'jpg', 'gif', 'png'],
    sizeLimit: 551200 // 50 kB = 50 * 1024 bytes
},
text: {
    uploadButton: 'Changepic'
}
}).on('complete', function(event, id, fileName, responseJSON) {
if (responseJSON.success) {
    imgs[this.id]="data:image/jpg;base64,"+ data;
}
});

我想将附加到fineuploader 的div 的id 传递给fileupload 请求。但是,我看到在引用“this.id”的任何地方都会返回“未定义”。我也尝试改用 this.attr('id') 并得到一个错误“Uncaught TypeError: Object # has no method 'attr'”。

我在这里发现了一个类似的问题(FINEUPLOAD 将 ID 作为参数传递)但是解决方案似乎太粗糙了。有人可以提出更好的解决方案,而不是重复相同的代码吗?

4

1 回答 1

5

您可以遍历元素并在每个元素上调用 fineUploader,在此过程中检索每个 ID:

$('.uploader').each(function() {
  var uplId= $(this).prop("id");
  $(this).fineUploader({
    request: {
        endpoint: './uploadfile',
        params: {
        imageid: function() {
            return uplId;
         }
        }
}
...
});
于 2013-07-13T16:17:48.887 回答