MVC получает один файл, даже когда я загружаю несколько файлов - PullRequest
0 голосов
/ 05 ноября 2018

Я использую Bootstrap File Input - плагин Kartik для загрузки нескольких файлов в приложение MVC 5. Я создал следующую HTML-разметку

<input id="fileUpload" type="file" class="file" multiple>

Затем я инициализировал загрузчик файлов следующим образом

$fileTC.fileinput({
        uploadUrl: "/TacPham/Upload",
        uploadAsync: false,
        browseOnZoneClick: true,
        allowedFileTypes: ['image']
    });

Я пытаюсь загрузить файлы с помощью Ajax-запроса на сервер.

$('#btnXuLy').click(function () {
        var model = {
            tenTacPham: $('#txtTenTacPham').val(),
            loaiTacPham: $('#seLoaiTacPham').val(),
            chuDe: $('#seChuDe').val(),
            noiDung: $('#taNoiDung').val(),
            idNguoiDung: hid_IDNguoiDung_Default,
            email: hid_Email_Default
        };

        $fileTC.fileinput('refresh', {
            uploadExtraData: model
        });

        $fileTC.fileinput('upload');

        $fileTC.on('filebatchuploadsuccess', function (event, data) {
            var form = data.form, files = data.files, extra = data.extra, response = data.response;

            console.log(data);
            console.log(response);
            console.log(files);
            console.log(extra);
            console.log('File batch upload success');
        });
})

После того, как я нажму кнопку «Загрузить», запрос достиг моего сервера, как и ожидалось, но мой сервер увидит только один файл вместо всех них

Вот как выглядит мой метод

[HttpPost]
        public ActionResult Upload(TacPhamJsonModel model)
        {
            var error = "";
            foreach (string item in Request.Files)
            {
                  HttpPostedFileBase getEle = Request.Files[item] as HttpPostedFileBase;
                  var uploadPath = "~/Documents/";
                  var finalPath = Path.Combine(HttpContext.Request.MapPath(uploadPath), getEle.FileName);
                  getEle.SaveAs(finalPath);
             }
             return Json(error);
        }

Request.Files.Count возвращает 1 событие, хотя я загрузил 3 или 5 файлов одновременно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...