此问题仅在我将其部署到我们的实时服务器时发生,它在我的 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 的答案标记为正确的答案,因为他的帖子让我得到了正确的答案/解释。