FormData не может в сервер, что проблема в моем коде - PullRequest
0 голосов
/ 26 сентября 2019

Что я могу сделать, чтобы отправить FormData на мой сервер , мой файл всегда пуст на сервере или возвращает статус Unsupported Media 415, я пытаюсь решить проблему, нопонятия не имею сейчас ....

<form enctype="multipart/form-data" name="add_data" id="add_data" method="post" onsubmit="return false"   >
    <input type="file" multiple="multiple" name="files" value="" id="files" />
    <br />
    <input type="submit" class="btn btn-success" value="Upload">
    <br />
</form> 

это моя часть html, а затем ajax

$('#add_data').submit(function () {
            var totalFiles; 
            totalFiles = document.getElementById("files").files[0];
            var formData = new FormData();
            formData.append("files", totalFiles);
            $.ajax({
                url: "/api/food/addfile",
                type: "Post",
                data:myData,
                contentType: false,
                processData: false,
                beforeSend: function (request) {
                    request.setRequestHeader("Authorization", "Bearer " + token);
                },
                data:  totalFiles ,
                dataType: 'json',
                success: function () {
                    alert("success")
                },
                error: function (jqXHR, exception) {
                    if (jqXHR.status == 401) {
                       return alert("請先執行前置作業");
                    }
                    alert(jqXHR.responseText);
                }
            });
        });

и контроллер

[Authorize]
    [HttpPost,Route("addfile")]
    public  IActionResult GetPicture(/*HttpPostedFileBase[] files*/)
    {
        #region test1
        //if (files != null)
        //{

        //    foreach (HttpPostedFileBase file in files)
        //    {
        //        file.SaveAs(Path.Combine(System.Web.HttpContext.Current.Server.MapPath("~/upload/"), file.FileName));
        //    }
        //}
        #endregion

        #region test2

        var req = System.Web.HttpContext.Current.Request;
        if (req.Files.Count > 0)
        {
            foreach (string fileName in req.Files.Keys)
            {
                var file = req.Files["files"];
                file.SaveAs(Path.Combine(System.Web.HttpContext.Current.Server.MapPath("~/upload/"), file.FileName));
            }
        }


        #endregion

        return Json(new { Status = 1 > 0 ? "SUCCESS" : "FAILS" });

что весь код, пожалуйста, кто может сказать мне спасибо.

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