【发布时间】:2012-06-06 01:08:02
【问题描述】:
此问题仅在我将其部署到我们的实时服务器时发生,它在我的 Visual Studio Web 服务器中的开发机器上运行良好,并且仅在 IE(8 和 9)中存在问题
使用这种形式发布 jpeg...
<form method="post" id="uploadForm" enctype="multipart/form-data" action="/ImageUpload/UploadImageNew">
<input type="file" onchange="postFile()" name="file"></div>
<input type="submit" value="OK">
</form>
使用这个 javascript...
function postFile(ctrl) {
document.getElementById('uploadForm').submit();
}
到这个控制器...
[HttpPost]
public ActionResult UploadImageNew(HttpPostedFileBase file)
{
// Verify that the user selected a file
if (file != null && file.ContentLength > 0)
{
file.SaveAs("AFilename.file");
}
else
{
throw new Exception("File not found")
}
return View("UploadImageNew");
}
在 IE 中导致 file.ContentLength = 0,但在 FF 和 Chrome 中可以正常工作,如果这有什么不同的话,机器在我们的 Intranet 上。
非常感谢任何帮助
更新 1:
奇怪的是,问题似乎是间歇性的,周五我的同事不能上传任何东西,但我可以,今天早上是我不能,我的同事可以同时使用 IE。
一切似乎都指向 IIS 配置问题?
更新 2:
好的,看来我的问题与过期的会话/安全性有关。我正在使用混合身份验证方法,它给我带来了问题。
主站点使用表单身份验证,但是我有另一个站点为我执行 Windows 身份验证并设置 cookie,禁用此功能为我解决了问题。
不知道为什么,但我认为这在另一个问题中会更好。
我将 smartcaveman 的答案标记为正确的答案,因为他的帖子引导我找到正确的答案/解释。
【问题讨论】:
-
上传的文件有多大?
-
远射,但您是否尝试在文件输入中添加“id”。例如:
-
文件不是很大,我已经更改了我的 web.config 以允许文件最大为 2gb。
-
我还在输入中添加了一个 id 元素,那里也没有变化
标签: asp.net-mvc internet-explorer iis-7.5 asp.net-mvc-4 httppostedfilebase