Получите изображение через почтовый запрос ajax, каким должен быть класс, чтобы получить это изображение - PullRequest
0 голосов
/ 07 сентября 2018

вот мой метод ajax

 fl = new FormData();

    fl.append("abcd", $("#so_camera_click")[0].files[0]);
 debugger;  

    $.ajax({
        type: "POST",
        url: "../SaleOrder/AddSaleOrderToDB",
        dataType: "json",
        traditional: true,
        data: {

            f:fl,


        }});

, а контроллер C # равен

идентификатор so_camera_click равен <input type="file" accept="image/*"/> каждый раз, когда я отлаживаю javascript данные в fl переменная, но когда он попадает в задний конец контроллера c #, он получает нулевое значение

       public JsonResult AddSaleOrderToDB(HttpPostedFileWrapper f)
             {
             }

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

Вы хотите опубликовать FileData, а не json.

Кроме того, для того, чтобы Контроллер отображал ваши опубликованные значения, аргумент должен иметь то же имя, которое вы использовали для POST.

Итак, чтобы ваш пример работал, вам нужно сделать что-то вроде этого

fl = new FormData();

fl.append("file", $("#so_camera_click")[0].files[0]);
debugger;  

$.ajax({
     type: "POST",
     url: "../SaleOrder/AddSaleOrderToDB",
     data: fl,
     contentType: false,
     processData: false
});

А в вашем контроллере

public JsonResult AddSaleOrderToDB(HttpPostedFileWrapper file)
{
}
0 голосов
/ 07 сентября 2018

В вашем запросе ajax, Измените значение данных следующим образом:

  $.ajax({
        type: "POST",
        url: "../SaleOrder/AddSaleOrderToDB",
        traditional: true,
        processData: false,
        contentType: false
        data: fl
        });

Используйте правильные, читаемые имена полей. Ваш контроллер ожидает файл, а не данные JSON.

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