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

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

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

任何线索?

在此处输入图像描述


更新:

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

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

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

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

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

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

控制器:

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 }); } } 

Index.cshtml视图:

  

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

  

看来这是IE缓存问题,如果你使用的是Ajax和GET,在Ajax参数的get参数中添加时间戳值,就可以这样做了:

 $.ajax({ url : "http:'//myexampleurl.php' + '?ts=' + new Date().getTime(), dataType: "json", contentType: "application/json; charset=utf-8", . . //more stuff 

如果你使用java spring

 @RequestMapping(value = "/upload", method = RequestMethod.POST, produces = "application/json") public @ResponseBody YourObject excelUplaod(@RequestHeader("X-File-Name") String filename, InputStream is) { // chrome or firefox } @RequestMapping(value = "/upload", method = RequestMethod.POST,headers="content-type=multipart/*", produces = "text/html") public @ResponseBody ResponseEntity uploadByMultipart(@RequestParam(value = "qqfile") MultipartFile file) { // IE try { String fileName = file.getOriginalFilename(); InputStream is = file.getInputStream(); // more stuff } catch (Exception e) { logger.error("error reading excel file", e); } }