C# 使用IE 11上载文件时出现空引用异常
在MVC中,我尝试创建一个多文件上传选项。它可以在其他浏览器中正常工作,但在IE11中则不行 HTML部分C# 使用IE 11上载文件时出现空引用异常,c#,html,asp.net-mvc,C#,Html,Asp.net Mvc,在MVC中,我尝试创建一个多文件上传选项。它可以在其他浏览器中正常工作,但在IE11中则不行 HTML部分 控制器 if (FileUpload != null && FileUpload[0] != null) { for (int i = 0; i < FileUpload.Count; i++) {
控制器
if (FileUpload != null && FileUpload[0] != null)
{
for (int i = 0; i < FileUpload.Count; i++)
{
if (FileUpload[i].ContentLength > 0)
{
//string fileExtension = System.IO.Path.GetExtension(FileUpload[i].FileName);
string fileExtension = "." +FileUpload[i].FileName.Split('.')[1];
model.UploadFile.FileType = fileExtension;
//if (fileExtension == ".xls" || fileExtension == ".xlsx")
//{
//string filename =DateTime.Now.ToString("hh:mm:ss")+FileUpload.FileName;
string[] stAFileName = FileUpload[i].FileName.Split('.');
string strFileName = stAFileName[0] + "_" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + "." + stAFileName[1];
string fileLocation = Path.Combine(Server.MapPath("~/Content/UploadedFiles/"), strFileName);
model.UploadFile.FileName = stAFileName[0];
model.UploadFile.FileSize = (Convert.ToInt32(FileUpload[i].ContentLength) / 1000).ToString();
try
{
if (System.IO.File.Exists(fileLocation))
{
System.IO.File.Delete(fileLocation);
}
}
catch
{
//System.IO.File.Delete(fileLocation);
//FileUpload.SaveAs(fileLocation);
}
FileUpload[i].SaveAs(fileLocation);
model.UploadFile.FilePath = "/Content/UploadedFiles/" + strFileName;
if (FileUpload[i].ContentLength > 0)
{
if (data.RID > 0)
{
model.UploadFile.ReportId = data.RID;
_reportProvider.SaveFile(model.UploadFile);
}
}
//}
}
}
}
if(FileUpload!=null&&FileUpload[0]!=null)
{
对于(int i=0;i0)
{
//字符串fileExtension=System.IO.Path.GetExtension(FileUpload[i].FileName);
字符串fileExtension=“.”+FileUpload[i].FileName.Split('.')[1];
model.UploadFile.FileType=文件扩展名;
//如果(文件扩展名==“.xls”| |文件扩展名==“.xlsx”)
//{
//字符串文件名=DateTime.Now.ToString(“hh:mm:ss”)+FileUpload.filename;
字符串[]statfilename=FileUpload[i].FileName.Split('.');
字符串strFileName=stAFileName[0]+“”+DateTime.Now.ToString(“yyyymmddhhmmssff”)+“+stAFileName[1];
字符串fileLocation=Path.Combine(Server.MapPath(“~/Content/UploadedFiles/”),strFileName);
model.UploadFile.FileName=statfilename[0];
model.UploadFile.FileSize=(Convert.ToInt32(FileUpload[i].ContentLength)/1000).ToString();
尝试
{
if(System.IO.File.Exists(fileLocation))
{
System.IO.File.Delete(fileLocation);
}
}
抓住
{
//System.IO.File.Delete(fileLocation);
//FileUpload.SaveAs(fileLocation);
}
FileUpload[i].SaveAs(fileLocation);
model.UploadFile.FilePath=“/Content/UploadedFiles/”+strFileName;
如果(FileUpload[i].ContentLength>0)
{
如果(data.RID>0)
{
model.UploadFile.ReportId=data.RID;
_reportProvider.SaveFile(model.UploadFile);
}
}
//}
}
}
}
我找到的唯一解决方案是我们可以更改IE设置,但对于大量系统来说这是不可能的
有什么方法可以解决这个问题吗IE 11中没有的
是什么意思?有什么问题吗<代码>点击F12
并检查控制台日志和网络选项卡。可能是表单根本没有发布,或者存在另一个错误。另一方面,如果IE11不支持multiple
属性,那么您将无能为力。您必须找到一种不同的方式来发布多个文件,可能是通过jQuery插件、Javascript库或您自己创建并发送post请求的Javascript代码。所有其他数据都会发布,只有上传的文件会失败。