Отправка данных внутри файла типа на контроллер в ASP.NET MVC - PullRequest
0 голосов
/ 13 октября 2018

Я хочу отправить фотографию для публикации в блоге!

Я определил два свойства в моей модели.Один для имени фотографии, которая будет сохранена в базе данных, а другой для получения файла и сохранения на сервере (в папке ресурсов).

это код моей модели:

[DataType(DataType.Upload)]
public HttpPostedFileBase File { get; set; }

public string BlogImage { get; set; }

это мой HTML-код:

<div class="form-group col-sm-8">
                    <label for="BlogImage">Blog Image</label>
                    <input type="file" class="form-control" id="BlogImage">
                </div>

Я хочу отправить файл на сервер с AJAX.

 var myAdminBlog = {
    BlogImage: $("#BlogImage").val(),
    File: $("#BlogImage").val()
};

$.ajax({
    url: 'AddPostBlog',
    data: JSON.stringify(myAdminBlog),
    type: "POST",
    contentType: "application/json;charset=utf-8",
    dataType: "json",
    success: function (data) {
        alert(data);
    },
    error: function (errormessage) {
        alert(errormessage);
    }
});

Это мой код Ajax.

Наконец, вы можете увидеть код контроллера.

 public JsonResult AddPostBlog(csAdminBlog myAdminBlog)
    { 
       int UploadMessage = UploadImage(myAdminBlog);
       return Json("Post Sended", JsonRequestBehavior.AllowGet);

    }

Моя проблема именно в том, что я не знаю, как получить файл из JavaScript.

Я пытался использовать $ ("#BlogImage "). Val (), но не удалось.

Примечание: все коды работают хорошо, и вся информация отправляется на контроллер, только пункт, который не отправляется, является параметром" Файл "

1 Ответ

0 голосов
/ 13 октября 2018

Если нет необходимости находиться в jQuery, тогда вы можете использовать document.getElementById(BlogImage).files[0]

Создать класс, подобный этому

Public Class UploadFile
{
[DataType(DataType.Upload)]
public HttpPostedFileBase File { get; set; }

public string BlogImage { get; set; }

}

Затем в JavaScript

 var UploadFile= new Object();
 UploadFile.BlogImage = $("#BlogImage").val();
 UploadFile.File = document.getElementById(BlogImage).files[0];

$.ajax({
   url: 'AddPostBlog',
   data: JSON.stringify({uploadFile:UploadFile}),
   type: "POST",
   contentType: "application/json;charset=utf-8",
   dataType: "json",
   success: function (data) {
      alert(data);
   },
   error: function (errormessage) {
      alert(errormessage);
   }

});

И в методе контроллера

 public JsonResult AddPostBlog(UploadFile uploadFile)
 { 
  //Your Code

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