Valums文件上传器在Internet Explorer 9下无法运行

Dev*_*per 7 javascript ajax jquery asp.net-mvc-3

Valums文件上传器(现在称为Fine Uploader)在Internet Explorer 9下不起作用,但在Chrome下也不错.

因此,在IE下,它显示文件的名称和按钮CANCEL,并且没有上传的百分比.

任何线索?

在此输入图像描述


更新:

解决方案在这里以及MVC Valums Ajax Uploader - IE不会在request.InputStream中发送流

tha*_*smt 11

我知道这个问题是专门在asp.net下提出的,但是当我搜索"valums ajax upload IE9"时,它就出现了,所以我会在这里发布我的修复,以防它像我一样帮助任何人,无论语言如何:

我正在使用"application/json"内容标头从AJAX上传请求返回JSON响应.IE9不知道如何处理"application/json"内容(但Chrome/FF /等).

我通过确保从服务器返回我的json响应中的" text/html "MIME类型http标头来修复此问题.

现在IE不再尝试下载响应了!干杯

  • 这是太棒了. (3认同)

Dar*_*rov 9

我无法重现这个问题.这是一个完整的工作示例.

控制器:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    [HttpPost]
    public ActionResult Upload(HttpPostedFileBase qqfile)
    {
        var uploadPath = Server.MapPath("~/app_data");
        if (qqfile != null)
        {
            var filename = Path.Combine(uploadPath, Path.GetFileName(qqfile.FileName));
            qqfile.SaveAs(filename);
            return Json(new { success = true }, "text/html");
        }
        else 
        {
            var filename = Request["qqfile"];
            if (!string.IsNullOrEmpty(filename))
            {
                filename = Path.Combine(uploadPath, Path.GetFileName(filename));
                using (var output = System.IO.File.Create(filename))
                {
                    Request.InputStream.CopyTo(output);
                }
                return Json(new { success = true });
            }
        }
        return Json(new { success = false });
    }
}
Run Code Online (Sandbox Code Playgroud)

Index.cshtml 视图:

<script src="@Url.Content("~/Scripts/valums/fileuploader.js")" type="text/javascript"></script>

<div id="file-uploader">       
    <noscript>          
        <p>Please enable JavaScript to use file uploader.</p>
    </noscript>         
</div>

<script type="text/javascript">
    var uploader = new qq.FileUploader({
        element: document.getElementById('file-uploader'),
        action: '@Url.Action("upload")'
    });
</script>
Run Code Online (Sandbox Code Playgroud)

您还可以在布局中包含CSS:

<link href="@Url.Content("~/Scripts/valums/fileuploader.css")" rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)