Загрузка нескольких файлов blueimp «sequentialUploads = true» не работает

Мне нужно хранить несколько файлов в базе данных. Для этого я использую элемент управления jQuery Multiple File Uplaod, написанный blueimp. В качестве языка сервера я использую asp.net. Он использует обработчик — ashx, который принимает каждый конкретный файл и сохраняет его в БД. В моей БД у меня есть хранимая процедура, которая возвращает идентификатор документа загруженного в данный момент файла, а затем сохраняет его в БД. Это фрагмент кода из него, который показывает, что получение этого идентификатора представляет собой трехэтапную процедуру:

SELECT TOP 1 @docIdOut = tblFile.docId -- ,@creator=creator,@created=created 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.

Любые предложения были бы полезны. Я попытался включить опцию для выбора только одного файла за раз, что не является лучшим, но остановит проблемы с БД (процедура strored) и сохранит файлы правильно.

Спасибо, С уважением, Любомир


person Velchev    schedule 20.05.2013    source источник


Ответы (1)


установите singleFileUploads: true, sequenceUploads: false в файле main.js.

singleFileUploads: true означает, что каждый выбранный файл загружается с использованием отдельного запроса на загрузку типа XHR. Затем вы можете получить информацию об отдельном файле и вызвать процедуру сохранения только что полученной информации.

person Yusuf    schedule 21.11.2013