此问题与Widen Fine-Uploader(https://github.com/Widen/fine-uploader)
有关我收到了这个分段上传表单。没有autoupload。我想上传几张图片,并以每个图片的唯一名称保护它们。
例如。你选了4张图片。通过精细上传上传。我已经有了一个画廊ID。所有图像都应使用gallery-id和唯一的升序号保存在文件名下。像这样:
1234-1.jpg 1234-2.jpg 1234-3.jpg 1234-4.jpg
听起来很简单,但有两个问题:
image-id需要升序而不跳过任何一个。如果您在上传之前取消(删除)文件,则可能会发生这种情况。所以在选择所有文件后需要设置image-id,或者在删除文件时需要填充空ID。
图像的顺序必须严格遵守您在输入时选择文件的顺序。您选择的第一个图像变为1234-1.jpg,第二个图像为1234-2.jpg ...因此我无法在重新加载后在imageHandler脚本中设置ID。它会抓取第一个完整的图像,它不能是第一个按顺序排列的图像,因为我在上传时使用了几个同时连接。
我尝试过类似的东西:
.on('submitted', function(event, id, name) {
var picId = id+1;
$(this).fineUploader('setParams', {
'currentGid': 1234,
'picId':picId
});
})
或
params: {
fileNum: function() {
return $(this).attr('id');
}
}
或使用fileCount ++,但没有任何工作像我需要..
答案 0 :(得分:2)
您的应用程序听起来有点脆弱,解决这个问题可能符合您的最佳利益。
您只需要维护一个唯一ID的地图以及Fine Uploader为每个文件维护的ID。在“提交”处理程序中,将键/值对添加到地图中。在“取消”处理程序中,适当调整地图中的项目。在“上传”处理程序中,调用“setParams”API方法。您的参数将通过图库ID,您在地图中为该特定文件跟踪的唯一ID,并确保将文件的ID作为最后一个参数传递给“setParams”调用。这使Fine Uploader知道此参数仅适用于该特定文件。
有关详细信息,请参阅callbacks documentation。
这是一个代码示例:
var fileIds = [];
$('#myFineuploaderContainer').fineUploader({
//set your options here
})
.on('submitted', function(event, id, name) {
fileIds.push(id);
})
.on('cancel', function(event, id, name) {
var fileIdPosition = $.inArray(id, fileIds);
fileIds.splice(fileIdPosition, 1);
})
.on('upload', function(event, id, name) {
var params = {
currentGid: 1234,
picId: $.inArray(id, fileIds)
};
$(this).fineUploader('setParams', params, id);
});