【发布时间】:2014-09-16 01:23:24
【问题描述】:
我有一个难以捉摸的 Internet Explorer 客户端问题。我无法创建在同一请求中上传文件和下载文件的网页。我的应用程序允许用户下载他们上传的文件的修改副本。
这是一个简单的表单发布事件,不涉及 AJAX,所以视图是这样的:
@using (Html.BeginForm("Export", "Report", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<input id="physicalFile" name="physicalFile" type="file" />
...
控制器中的服务器响应也很简单:
[HttpPost]
public ActionResult Export(ReportDetailsModel model, HttpPostedFileBase physicalFile)
{
...
var fileStream = MakeReportFileStream(physicalFile.InputStream);
return File(fileStream, System.Net.Mime.MediaTypeNames.Application.Octet, "Results.xlsx");
}
但是,Internet Explorer 在提交表单后挂起。太糟糕了,您无法关闭 Internet Explorer,必须强制“结束任务”。
好奇的因素,包括我尝试过的事情,从最好奇到最不好奇:
- 如果我从表单中删除文件上传控件不会发生,下载工作正常!
- 如果我从响应中删除下载,不会发生吗?上传自己的作品很好!
- 仍然在禁用所有 IE 插件的情况下发生
- 在其他浏览器(Chrome 和 Firefox)中不会发生
- 在某些使用相同版本 Internet Explorer 的机器(例如我的机器)上不会发生
有什么想法吗?
编辑:
- 在计算机上成为管理员无效
- 在强制网站进入“受信任的网站”且可用限制最少时仍然会发生这种情况。
- 安装 IE11 解决了问题
- 在一片混乱中,我怀疑 IT 部门将某些配置强加到这些机器上。
【问题讨论】:
标签: c# asp.net-mvc-4 internet-explorer http-post