SWFUpload несколько файлов на стороне сервера - PullRequest
2 голосов
/ 18 марта 2010

Мне нужно, чтобы пользователь мог загружать несколько файлов на мой сервер, поэтому я использую утилиту SWFUpload. SWFUpload отправляет файлы один за другим, и мне нужно хранить их все в одном временном каталоге. Мой обработчик ASP.NET получает файлы один за другим, и я могу сохранить файл соответствующим образом.

Моя проблема: как узнать, какие файлы принадлежат одной и той же загрузке? Перефразировано, как мне соединить файлы в моем обработчике?

1 Ответ

2 голосов
/ 18 марта 2010

Я вижу 2 способа сделать это (но они наследуют одну и ту же идею).

Идея основана на том, что у вас должно быть что-то вроде sessionId параметра. Это значение должно быть уникальным для каждого набора файлов. Вы можете использовать генераторы javascript uuid или что-то в этом роде.

Кроме того, эту переменную sessionId можно передать через строку запроса (немного изменив URL вашего обработчика): ~/UploadHandler.ashx?sessionId={whatever} или в качестве параметра post (думаю, лучше) Значение может быть получено на стороне сервера с помощью: context.Request["SessionId"] например.

На стороне клиента вы сможете динамически изменять параметры записи или URL обработчика. Это можно сделать с помощью:

void addPostParam(name, value)

Функция addPostParam добавляет пара имя / значение, которая будет отправлена ​​в POST для всех загруженных файлов.

Также появится пара имя / значение в настройке post_params.

или

void setUploadURL(url)

Динамически изменяет upload_url установка.

клиентские методы. Они должны быть вызваны из

fileDialogComplete(number of files selected, number of files queued, total number of files in the queued)

Событие fileDialogComplete запускается после диалогового окна выбора файла был закрыт и все выбранные файлы были обработаны. Число файлов в очереди 'аргумент указывает количество файлов в очереди из диалогового выбора (в отличие на количество файлов в очереди).

способ.

Надеюсь, это поможет.

...