2013-05-20 29 views
3

我必須在數據庫中存儲多個文件。爲了做到這一點,我正在使用blueimp編寫的jQuery多文件Uplaod控件。對於服務器語言,我使用asp.net。它使用一個處理程序 - ashx,它接受每個特定的文件並將其存儲在數據庫中。 在我的數據庫中,我有一個存儲過程,它返回當前上傳文件的文檔ID,然後將其存儲到數據庫中。 這是從它的碼片段,其示出了獲得這個ID是一個3步驟的過程:多文件上傳blueimp「sequentialUploads = true」不起作用

SELECT TOP 1 @docIdOut = tblFile.docId - ,@創建者創作者=,@創建= FROM創建[ tblFile] WHERE 的FriendlyName LIKE @friendlyname AND @CategoryID =的categoryId AND @objectId = OBJECTID AND @objectTypeId = objectTypeId ORDER BY tblFile.version DESC

IF @docIdOut = 0  BEGIN --get the next docId   SELECT TOP 1 

@docIdOut =的docId + 1 FROM [tblFile] ORDER BY docId DESC END

IF @docIdOut = 0  BEGIN --set to 1   SET @docIdOut = 1  END 

如果多個調用存儲過程執行,然後將是一個問題,由於數據的不一致,但如果我添加一個事務,然後上傳一些文件將被取消。

https://dl.dropboxusercontent.com/u/13878369/2013-05-20_1731.png

有沒有辦法使用相同的參數再次調用存儲過程時,執行由交易受阻?

另一個選擇是使用blueimp插件與選項「sequentialUploads = true」同步 該選項適用於除firefox以外的所有瀏覽器,並且我讀到它也不適用於Safari。

任何建議將有所幫助。我嘗試並啓用了一次只選擇一個文件的選項,這不是最好的選擇,但會停止數據庫問題(已過程)並將正確保存文件。

感謝, 最好的問候, Lyuubomir

回答

0

集singleFileUploads:真,sequentialUploads:在main.js.假

singleFileUploads:true表示選擇的每個文件都使用單獨的XHR類型上傳請求上傳。然後,您可以獲取單個文件的信息,並用剛纔獲取的信息調用商店過程。

相關問題