ksni56z - 2008-7-24 15:35:00
未将对象引用设置到对象的实例。 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
源错误:
| 行 132: 行 133: HttpPostedFile hpf=F.PostedFile;行 134: int cl=hpf.FileName.Length;行 135: 行 136: if(cl>0) |
源文件: c:\inetpub\wwwroot\bbs\reg.aspx.cs 行: 134
堆栈跟踪:
先前是好的 不过过一会在运行他就出现问题了
suresy - 2008-7-24 16:05:00
检查一下运行时有无正确上传文件,一般在保存之前最好先检查一下FileUpload控件的HasFile属性
ksni56z - 2008-7-24 17:28:00
FileUpload控件的HasFile属性 这个是在哪里啊 我用的是html组件下的file field控件 将它转化为服务器运行用的 没看到你刚才说的属性啊 在上传的时候 我首先检查了有无值 没有就将它否掉了啊
suresy - 2008-7-24 20:35:00
这个控件我比较少用,但根据我使用FileUpload控件的经验,有可能是当没有上传文件或上传出错时F.PostedFile或F.PostedFile.FileName为null,所以导致了hpf.FileName.Length空对象引用。
根据你的源代码,可以把是否为空的判断提到前面:
if (F.PostedFile == null) //或者检查F.PostedFile.FileName
{
//出错处理
}
else
{
HttpPostedFile hpf=F.PostedFile;
//后面可以直接使用hpf.FileName
}
其实你完全可以在页面中使用RequireFieldValidator检查是否为空或RegularValidator检查文件类型是否合法,这样后台代码就可以少做很多事情,而且也避免了不必要的回发和等待时间。
ksni56z - 2008-7-25 0:02:00
喔 谢谢了 他有时候又好了 可能是跟环境也有关