tyson Hamda Ответов: 0

Загрузка pdf файла с помощью jquery MVC 4


Я пытаюсь загрузить файл с помощью jquery, и он отлично работает с текстовым файлом, но когда я пытаюсь загрузить pdf-файл, он выдает ошибку и всегда возвращает 0 для запроса.Файлы.Рассчитывать.

я пытаюсь в течение 2 часов и не понимаю ошибки, пожалуйста, помогите!

Что я уже пробовал:

Код На Стороне Клиента

HTML


<input id="file" class="form-control-file" type="file" name="file" placeholder="Document Upload" />



В jQuery

$("#file").change(function () {
    var formData = new FormData();
    var totalFiles = document.getElementById("file").files.length;
    for (var i = 0; i < totalFiles; i++) {
        var file = document.getElementById("file").files[i];

        formData.append("file", file);
    }
    $.ajax({
        type: "POST",
        url: '/Admin/PreviewUpload',
        data: formData,
        dataType: 'json',
        contentType: false,
        processData: false,
        success: function (response) {
            alert('succes!!');
        },
        error: function (error) {
            alert("errror");
        }
    });
});


Код На Стороне Сервера

[HttpPost]   
  public ActionResult PreviewUpload()
    {
        if (Request.Files.Count > 0)
        {
            foreach (string files in Request.Files)
            {
                var _file = Request.Files[files];
                FileInfo Fi = new FileInfo(Path.GetFileName(_file.FileName));
                string fileExtention = Fi.Extension;
                if (_file != null)
                {
                    if (fileExtention == ".PDF")
                    {
                        string fileName = Path.GetFileName(_file.FileName);
                        if (_file.ContentLength <= 120000000)
                        {
                            _file.SaveAs(Server.MapPath("~/PreviewPDF/" + fileName));
                        }
                        string path = "/PreviewPDF/" + Path.GetFileName(_file.FileName);
                        ViewData["error"] = path;
                        return Json(new
                        {
                            Success = path
                        });
                    }
                    else
                    {
                        return Json(new
                        {
                            fileError = "Only Support PDF"
                        });
                    }
                }
                else
                {
                    return Json(new
                    {
                        error = "Please Select the file"
                    });
                }
            }
        }
        return Json(new
        {
            error = "Please Select the file"
        });
    }

Richard Deeming

Попробуйте удалить dataType: 'json' от вашего звонка AJAX.

tyson Hamda

спасибо братан за вашу помощь но проблема была в том что он разрешил только 4 МБ файла и я пытаюсь загрузить 22 Мб файла для теста и тратить свои 2 часа :(

0 Ответов