多个文件上传blueimp“sequentialUploads = true”无效

时间:2013-05-20 21:05:14

标签: file asynchronous upload blueimp

我必须在数据库中存储多个文件。为了做到这一点,我使用blueimp编写的jQuery Multiple File Uplaod控件。对于服务器语言,我使用asp.net。它使用一个处理程序 - ashx接受每个特定文件并将其存储在数据库中。 在我的数据库中,我有一个存储过程,它返回当前上载文件的文档ID,然后将其存储到数据库中。 这是一个代码片段,它显示获取此ID是一个3步骤过程:

  

SELECT TOP 1 @docIdOut = tblFile.docId -   ,@ creator = creator,@ created =创建FROM [tblFile] WHERE   friendlyname LIKE @friendlyname和@categoryId = categoryId AND   @objectId = objectId和@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。

任何建议都会有所帮助。我尝试并启用了一次只选择一个文件的选项,这不是最好的,但会停止DB问题(strored procedure)并且会正确保存文件。

谢谢, 最好的祝福, Lyuubomir

1 个答案:

答案 0 :(得分:0)

在main.js中设置singleFileUploads:true,sequentialUploads:false。

  

singleFileUploads:true表示使用针对XHR类型上传的单独请求上载选择的每个文件。然后,您可以获取单个文件的信息,并使用您刚刚获得的信息调用存储过程。