Зацикливание опубликованных файлов, загруженных с помощью uploadify в MVC3

Я использую uploadify для загрузки нескольких файлов в приложение MVC 3. Если я выберу несколько файлов и нажму «Загрузить», я получу файлы, но один за другим в контроллере. Я хочу, чтобы опубликованные файлы поступали в виде коллекции, чтобы я мог их просматривать.

Я видел здесь несколько похожих сообщений, но я не может использовать это, так как он не использует uploadify.

Любая идея, как это сделать?

Код просмотра бритвы:

<input type="file" id="file_upload" name="file_upload" />
<a onclick="Upload();" style="font:12px Arial; text-decoration: none; outline: none;">Upload</a>
<input type="hidden" id="CanFiles" />

$('#file_upload').uploadify({
            'uploader': '/content/uploadify/uploadify.swf',
            'script': '/upload/UploadFiles',
            'scriptData': { 'auth': auth, 'sid': sid, 'multi': 1 },
            'cancelImg': '/content/uploadify/cancel.gif',
            'folder': '/content/uploadify/uploads',
            'auto': false,
            'multi': true,
            'simUploadLimit': 1,
            'expressInstall': '/content/uploadify/expressInstall.swf',
});

текущее действие контроллера:

public ActionResult UploadFiles()
{
    foreach (string fileName in Request.Files)
    {
       //this always get 1 file and action gets called once for each file
    }
}

Это то, что я хочу:

public ActionResult UploadFiles(IEnumerable<HttpPostedFileBase> files)
{
    //loop the files posted
}

person Community    schedule 08.08.2011    source источник
comment
эй, ты в итоге нашел что-нибудь подходящее? я пытаюсь добиться того же, но с добавлением представления ajax   -  person karbonphyber    schedule 20.01.2012


Ответы (1)


Что вам нужно, так это размещение нескольких файлов в одном и том же действии. Для этого нет необходимости использовать библиотеку наподобие uploadify. Что вы можете легко сделать, так это: написать javascript, чтобы скрыть элемент файла, как только пользователь выбрал файл, и создать новый элемент файла на его месте. Таким образом, у вас есть несколько файловых элементов, указывающих на разные файлы, все, кроме одного, скрыты, но присутствуют на странице, и когда пользователь отправляет форму, вы получаете все файлы в массиве Request.Files. Я отредактирую этот ответ и скоро дам вам образец.

РЕДАКТИРОВАТЬ:

Вот пример:

http://the-stickman.com/web-development/javascript/upload-multiple-files-with-a-single-file-element/

Это немного просто, но вы можете заставить его работать.

person Zasz    schedule 09.08.2011
comment
Конечно, это не дропбокс. Существует множество загрузок файлов и индикаторов выполнения на основе jQuery, которые вы можете использовать. - person Zasz; 09.08.2011