星期零

技术改变生活,分享让我们快乐!
随笔 - 159, 文章 - 0, 评论 - 234, 阅读 - 44万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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了。

 

 

编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2010-02-17 windows7下运行红警2(Ra2)
点击右上角即可分享
微信分享提示