Asp.net mvc ASP.Net MVC中的文件上载遇到以前的错误时,Request.File.Count仍设置为1
我正在ASP.NETMVC中开发一个表单,其中包含一个Asp.net mvc ASP.Net MVC中的文件上载遇到以前的错误时,Request.File.Count仍设置为1,asp.net-mvc,file-upload,Asp.net Mvc,File Upload,我正在ASP.NETMVC中开发一个表单,其中包含一个,它在表单中不是必需的 在我的控制器中,我有以下代码: [AcceptVerbs(HttpVerbs.Post)] [ValidateInput(false)] public ActionResult Create(FormCollection collection) { ... //get uploaded file if (Request.Files.Count > 0)
,它在表单中不是必需的
在我的控制器中,我有以下代码:
[AcceptVerbs(HttpVerbs.Post)]
[ValidateInput(false)]
public ActionResult Create(FormCollection collection) {
...
//get uploaded file
if (Request.Files.Count > 0)
{
file = Request.Files["imgFileUpload"];
if (file.ContentLength == 0)
{
throw new InvalidOperationException("File contents are empty");
}
...
}
...
}
现在,当用户上传一个没有内容的文件时,表单会引发一个异常并向用户提示——这是意料之中的
现在,如果用户决定不再上传任何文件并单击submit按钮,那么之前的异常仍然会显示,这相当奇怪
我尝试检查Request.Files
的值,发现其计数仍然设置为1。。。它仍然认为那里有一个文件,因为用户没有在
控件上放置任何文件
有人遇到过这种情况吗?如果是,您采取了哪些步骤来防止再次执行上一个异常
非常感谢你 刚刚找到了解决这个问题的方法。我所做的是我需要检查输入文件控制器上是否有任何值。如果有,则上载文件,否则保持原样
嗯 我刚刚在一个类似的场景中遇到了相同的问题,我做了以下操作来修复它:
if(Request.Files.Count > 0)
{
if(Request.Files[0].ContentLength > 0)
{
//Upload the file...
}
}