2013-04-25 51 views
0

這個問題涉及到拓寬精細上傳(https://github.com/Widen/fine-uploader細上傳獨一無二的,但上升的ID上提交和取消

我得到這個多上傳表單。沒有autoupload。我想上傳幾張圖片,並以每張圖片的獨特名稱進行保護。

例如。你選擇4張圖片。通過精細上傳進行上傳。我已經有一個畫廊ID。所有圖像應使用gallery-id和唯一的升序編號保存在文件名下。像這樣:

1234-1.jpg 1234-2.jpg 1234-3.jpg 1234-4.jpg

聽起來很容易,但這裏有兩個問題:

  • image-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

什麼,具體而言,是錯誤的與您現有的方法(ES)/嘗試(上面)?什麼情況不會發生? – 2013-04-25 19:14:58

+0

另外,聽起來您需要在上傳開始之前確定這些ID。如果用戶取消正在進行的其中一項上傳操作,該怎麼辦?您最終可能會爲第一個文件發送1234-1,用戶會在正在進行時取消1234-2,而1234-3文件也在進行中。我想我不明白爲什麼你有這個嚴格的連續編號要求。爲什麼不把文件ID的值與圖庫ID一起傳遞並完成呢?另外,爲什麼選擇文件的順序如此重要? – 2013-04-25 19:21:51

+0

我不想提供取消進度。提交後不需要選項。 圖片將以圖片ID順序顯示。可能有些畫廊展示連續拍攝(講故事)。這就是我們需要訂單的原因。 我們多年來一直使用這種ID結構。如果缺少一個數字,許多不同的腳本將停止工作。我們不想改變這一點。 – Tom 2013-04-26 12:33:30

回答

1

您的應用程序聽起來有點脆,解決這個問題可能符合您的最佳利益。

您只需維護唯一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); 
    }); 
+0

我不明白。你對地圖有什麼意義? – Tom 2013-04-26 13:43:05

+0

具有每個Fine Uploader文件ID和與您的唯一ID相等的值的屬性的對象。 – 2013-04-26 13:45:53

+0

我甚至不確定,如果我找到你的權利。對不起,我是js新手。你的意思是,像一個包含每個文件ID的數組?這可以工作,並且不需要第二個ID,如果我使用價值位置創建我的ASC ID。但我不知道如何創建這樣一個數組映射,或者更確切地說,在取消事件中刪除一個值。 : -/ – Tom 2013-04-26 14:12:38