此问题与加宽Fine-Uploader(https://github.com/Widen/fine-uploader)有关
我收到了这份分段上传的表格。没有自动上传。我想上传几张图片,并以每张图片的唯一名称保护它们。
例如。您选择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 ++,但没有任何工作像我需要的..
最佳答案
您的应用程序听起来有些脆弱,解决该问题可能符合您的最大利益。
您只需要维护唯一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);
});