我已经使用dragAndDrop:reportDirectoryPaths选项成功实现了使用Fine Uploader上传目录结构。上传的每个文件都有它的qqpath属性来表示它来自哪个路径。是否可以通过AJAX按顺序上传文件?
var exampleUploader = new qq.FineUploader({
element: document.getElementById('fine-uploader'),
template: 'qq-template-manual-trigger',
request: {
endpoint: '/api/UploadDocuments',
params: {
param1: "Test1",
param2: "Test2"
}
},
callbacks: {
onComplete: function (id, name, responseJSON, xhr) {
console.log("onComplete");
},
onAllComplete: function (id, name, responseJSON, xhr) {
console.log("onAllComplete");
}
},
multiple: true,
dragAndDrop: {
reportDirectoryPaths: true
},
autoUpload: true,
debug: false
});
然而,有一个问题:文件被逐个上传,但有时同时调用ajax请求。如果两个具有相同目录结构的文件在同一时间传递给服务,则可能一次创建两次目录。有没有办法只在前一次成功执行ajax请求?换句话说,是否有一种方法可以顺序地上传文件,而不是同时上传(一堆文件一次传递到服务中)?
由于提前, AJ
肯定的,只是有ajax调用的成功处理程序重新调用它自己(例如递归)。所以调用#1上传文件#1。当该调用返回时,它会再次调用自身并启动文件#2等,另一方面,这可能是效率低下/缓慢,因为您正在为每个文件分别进行http上传。你可以在文件中包含测序数据,这样服务器就可以知道它是哪一个。例如'的file1 = sometext; file2 = othertext'并且从服务器名称中提取数字:'file1' - >'1',“啊,这是第一个文件,创建目录#2”,然后“啊,这是文件2,所以创建目录#1“ –
您是否尝试过使用Fine Uploader进行此操作,或者您是否熟悉该控件? – ajh