现在的位置: 首页 > 综合 > 正文

asp.net上传文件使用file控件,判断文件大小,取得文件路径时报错【System.IO.FileNotFoundException:未能找到文件】的解决办法

2012年11月12日 ⁄ 综合 ⁄ 共 574字 ⁄ 字号 评论关闭

asp.net上传文件,使用html控件的file控件,报错【System.IO.FileNotFoundException:未能找到文件】,这是文件上传时不能获取全路径名报错。

当上传文件用到文件流,获取客户端上传文件的绝对路径时,由于不同的浏览器下安全设置不同,有时就会报错。

ie7/8/ff/gg中,上传的文件不会显示出全路径,gg和ff只会显示文件名称,ie8会显示C:\\fakepath\test.txt"。这就是因为浏览器的安全设置。

 

解决方法:

打开ie浏览器-->internet 选项-->安全-->自定义级别-->其他-->将"将文件上载到服务器时显示文件目录路径"启用

确定后重新运行即可。

 

另解决办法:

如果你报错的地方是你读取文件大小的代码,那和我遇到的是一样的,如下代码:

HttpFileCollection _files = System.Web.HttpContext.Current.Request.Files;

string name = _files[i].FileName;

FileInfo fi = new FileInfo(name);

然后:fi.Length获得文件的大小,来判断上传大小的限制

这样就要报错了,就是上边说到的路径问题了

这时变换一个取得文件大小的方法:_files[i].ContentLength,这样就ok了。

 

 

抱歉!评论已关闭.