Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
 
Stavrius
1 / 1 / 0
Регистрация: 06.03.2018
Сообщений: 99
1

Передача файлов через Ajax

14.02.2020, 17:34. Просмотров 106. Ответов 2
Метки нет (Все метки)

Добрый день, asp.net core 3.1 MVC6 как передать файлы через Ajax, файлы передаются, контроллер их не видит, делал по документации, все равно...
HTML5
1
2
3
4
<div>
    <input type="file" name="battlePlans" id="battlePlans" multiple>
    <button id="submit">Загрузить</button>
</div>
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
  $('#submit').on('click', function (e) {
        e.preventDefault();
        var files = document.getElementById('battlePlans').files;
        if (files.length > 0) {
            if (window.FormData !== undefined) {
                var formData = new FormData();
 
//!!Один вариант считывания !!
                //for (var x = 0; x < files.length; x++) {
                //    formData.append("battlePlans" + x, files[x]);
                //} 
//Второй вариант, предложенный Microsoft, который выдает ошибку - пришлось закомментировать ошибку
for (var file in files) {
  formData.append("battlePlans", file/*, file.name*/);
                }
                console.log(formData.length);
                $.ajax({
                    type: "POST",
                    url: '@Url.Action("Post", "Home")',
                    contentType: false,
                    processData: false,
                    data: formData,
                    success: function (result) {
                        alert(result);
                    },
                    error: function (xhr, status, p3) {
                        alert(xhr.responseText);
                    }
                });
            } else {
                alert("Браузер не поддерживает загрузку файлов HTML5!");
            }
        }
    });
Сам контроллер
C#
1
2
3
4
5
[HttpPost]
        public async Task<IActionResult> Post(List<IFormFile> battlePlans)
        {
            return Json(battlePlans.Count.ToString());
        }
Однако все равно выводит 0, как решить проблему без использования модели?

Ссылка на документацию https://docs.microsoft.com/ru-ru/asp...of-post-method

Добавлено через 18 минут
Решил проблему частично проблему, кусок JS первого варианта
Javascript
1
2
3
for (var x = 0; x < files.length; x++) {
                    formData.append("battlePlans", files[x], files[x].name);
                }
Ошибку с Microsoft выдавал, что лишний параметр пытаюсь запихнуть (с чего бы это?..) , который я закомментил,
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.02.2020, 17:34
Ответы с готовыми решениями:

Передача данных из контроллера во вьюху через Ajax
Здравствуйте. у меня такой вопрос: есть БД, которая подключена к проекту через Entity Framework....

Ajax.BeginForm передача параметра
Доброго. В консоли браузера параметр имеет необычный вид $VB$Local_item.Id 1 И как следствие, в...

Ajax передача данных в метод
Подскажите пожалуйста, как передать данные в метод контроллера. Суть в следующем. Есть такой...

Передача в контроллер параметра ajax запросом
Доброго всем дня (вечера). Есть код. В контроллере Controller есть метод public...

Загрузка файлов и Ajax
Здравствуйте, я понимаю что задача весьма тривиальная, но бьюсь уже два дня, никак не могу...

2
yurickas
147 / 125 / 30
Регистрация: 25.11.2015
Сообщений: 878
Завершенные тесты: 2
14.02.2020, 18:43 2
C#
1
2
3
4
5
[HttpPost]
        public async Task<IActionResult> Post(List<IFormFile> battlePlans)
        {
            return Json(battlePlans.Count.ToString());
        }
если не изменяет мой склероз, то в параметры метода надо атрибут ввести. [From.....] вот не помню по памяти
0
carrotik
231 / 175 / 59
Регистрация: 21.02.2019
Сообщений: 722
14.02.2020, 18:46 3
Цитата Сообщение от yurickas Посмотреть сообщение
[From.....] вот не помню по памяти
[FromForm]
0
14.02.2020, 18:46
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.02.2020, 18:46

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

AJAX через JQuery
Доброго времени суток! Подскажите пожалуйста примеры организации AJAX через JQuery в ASP .NET...

Передача файлов по ajax
Друзья, как правильно обрабатывать массив файлов при передаче и сохранить структуру? При попытке...

Ajax и передача файлов
С горем пополам разобрался с передачей текста через POST по аяксу. Теперь столкнулся с проблемой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.