Загрузка файлов с использованием Ajax и Ashx не работает в IE

Я загружаю файл, используя файлы ajax и ashx, и он хорошо работает в другом браузере, кроме Internet Explorer (IE11), я также искал в Интернете и пробовал разные предложения, но все равно не получилось.

Вот мой код Ajax:

function uploadFile() {
        var formData = new FormData();
        formData.append('file', $('#fileupload')[0].files[0]);
        $.ajax({
            type: 'post',
            url: 'fileUploader.ashx',
            data: formData,
            success: alert("Success!"),
            processData: false,
            cache: false,
            contentType: false,
            error: function () {
                alert("Something went wrong!");
            }
        });
}

Вот мой кодекс Ashx:

public class fileUploader : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/plain";
        try
        {
            string dirFullPath = HttpContext.Current.Server.MapPath("~/Attachment_/");
            string[] files;
            files = System.IO.Directory.GetFiles(dirFullPath);
            string str_file = "";

            foreach (string s in context.Request.Files)
            {
                HttpPostedFile file = context.Request.Files[s];
                string fileName = file.FileName;
                string fileExtension = file.ContentType;

                if (!string.IsNullOrEmpty(fileName))
                {
                    //save to path
                    fileExtension = Path.GetExtension(fileName);
                    str_file = "Attachment_" +fileName;
                    string pathToSave = HttpContext.Current.Server.MapPath("~/Attachment_/") + str_file;
                    file.SaveAs(pathToSave);
                }
            }


            context.Response.Write(str_file);
        }
        catch (Exception)
        {
            throw;
        }
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}

Где я неправ? Я попробовал и проверил это на другом браузере, особенно Chrome, и вышеупомянутые коды работают, но это не сработает на IE. Это также не выдает никакой ошибки, и показывает alert("Success") сообщение, но файл не загружается. Заранее спасибо за помощь.

0 ответов

Вместо того, чтобы использовать

string fileName = file.FileName;

использовать

Path.GetFileName(file.FileName)
Другие вопросы по тегам