我已經使用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