无法访问已关闭的文件,在上传附件的时候出现问题!

SATAN1122 2009-03-23 05:20:05
·我在本地可以上传几M的文件,但放到服务器上后就只能上传几十KB的文件,一旦大于100KB左右,就会报无法访问已关闭的文件...
已经在WEB里加了<httpRuntime maxRequestLength="102400" executionTimeout="60"/>但还是没有用··请高手指教




HttpFileCollection fileList = Request.Files;
string attahDir = Server.MapPath("Attahments");
string userDir = attahDir + "/" + name;
if (!Directory.Exists(userDir))
{
Directory.CreateDirectory(userDir);
}
for (int i = 0; i < fileList.Count-1; i++)
{
HttpPostedFile file = fileList[i];
if (file.FileName.Length <= 0 || file.ContentLength <= 0) continue;
//Attachment attachment = new Attachment(file.FileName);
size += file.ContentLength;
string attachname = DateTime.Now.ToString("yyyyMMddHHmmss") + file.FileName.Substring(file.FileName.LastIndexOf("\\") + 1);
filename = filename + "?" + attachname;
file.SaveAs(userDir + "/" + attachname);《--这里会报错!无法访问已关闭的文件....
}






...全文
697 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
jianshao810 2011-01-12
  • 打赏
  • 举报
回复
我也碰到,怎么样解决的,希望楼主可以留言告诉下我,谢谢。。。
aweiwenyuan 2009-03-26
  • 打赏
  • 举报
回复
我也碰到了同样的问题!~痛苦啊
SATAN1122 2009-03-25
  • 打赏
  • 举报
回复
···都2天了··唉
SATAN1122 2009-03-24
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 xfreyes 的回复:]
maxRequestLength="102400" 这个设大些!
[/Quote]

我才80KB大小的文件····而且我改成10240000也一样
xfreyes 2009-03-24
  • 打赏
  • 举报
回复
maxRequestLength="102400" 这个设大些!
SATAN1122 2009-03-24
  • 打赏
  • 举报
回复
顶上去
chen2319 2009-03-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 findcaiyzh 的回复:]
一次都成功不了,还是前面的可以成功,后面的成功不了。
我google的结果:

1. 一个页面上传多个文件的话,maxRequestLength要指定总和。
Just need to take into account if you have three upload fields on one page and want each to be limited to 10 MB you need a maxRequestLength of at least 30 MB to handle it.

2. 给服务器上的.net framework打service pack.

我也不知道是不是能解决问题。

另外e…
[/Quote]
支持~~~
SATAN1122 2009-03-24
  • 打赏
  • 举报
回复
是这样的··同样的一段程序,我在用VS进行本地测试的时候,可以上传1M大小的文件
但一旦放到了远程服务器上,就只能上传最大50KB的文件,不然就会报这个错···


我想应该不是大小和时间的限制吧?因为我测试用的文件才81KB就会报错,而且时间也很短··

谢谢各位多多帮忙
SATAN1122 2009-03-24
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 zzxap 的回复:]
问:
如题
用 System.Web.UI.HtmlControls.HtmlInputFile.PostedFile.SaveAs(filepath);
将客户端文件上传到服务器上,如果上传页面不关闭,上传到服务器上的文件就不能删除,删除时提示此文件正在使用。要怎么办才能让 SaveAs 后就关闭对上传文件的关连。我用 HtmlInputFile.PostedFile.InputStream.Close();和HtmlInputFile.Dispose();都没有用,急,谢谢!
____________________________________________________________…
[/Quote]

写入的权限肯定是有的····但我现在不是关不掉··而是消失的太早了··让我无法保存·我用的HttpPostedFile类
zzxap 2009-03-24
  • 打赏
  • 举报
回复
问:
如题
用 System.Web.UI.HtmlControls.HtmlInputFile.PostedFile.SaveAs(filepath);
将客户端文件上传到服务器上,如果上传页面不关闭,上传到服务器上的文件就不能删除,删除时提示此文件正在使用。要怎么办才能让 SaveAs 后就关闭对上传文件的关连。我用 HtmlInputFile.PostedFile.InputStream.Close();和HtmlInputFile.Dispose();都没有用,急,谢谢!
______________________________________________________________________________________________
答1:
try (didn' test, so it might not work):

System.IO.FileStream fs = new System.IO.FileStream(YourFilePath, FileMode.Create);
byte[] bs = new byte[YourInput.PostedFile.ContentLength];
YourInput.PostedFile.InputStream.Read(bs,0,bs.Length);
fs.Write(bs,0,bs.Length);
fs.Close();

______________________________________________________________________________________________
答2:
建议用 Request.Files 方式来接受文件。这样自己容易控制。


______________________________________________________________________________________________
答3:
多谢两位,两个方法都试了,可都还是不能删除?还有办法嘛?
______________________________________________________________________________________________
答4:
Sorry,是我搞错了,可以删除,我上传完了又有一次对文件的引用没有释放。可以删除的,谢!结贴。
______________________________________________________________________________________________
答5:
Sorry,我搞错了,可以删除的,我上传完了又对文件引用了一次,没有释放。多谢!结贴。

zzxap 2009-03-24
  • 打赏
  • 举报
回复
文件夹有没有写入权限?设置下
SATAN1122 2009-03-24
  • 打赏
  • 举报
回复
难道这问题没人知道为什么吗?
walkghost 2009-03-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 findcaiyzh 的回复:]
一次都成功不了,还是前面的可以成功,后面的成功不了。
我google的结果:

1. 一个页面上传多个文件的话,maxRequestLength要指定总和。
Just need to take into account if you have three upload fields on one page and want each to be limited to 10 MB you need a maxRequestLength of at least 30 MB to handle it.

2. 给服务器上的.net framework打service pack.

我也不知道是不是能解决问题。

另外e…
[/Quote]
UP!
宝_爸 2009-03-23
  • 打赏
  • 举报
回复
一次都成功不了,还是前面的可以成功,后面的成功不了。
我google的结果:

1. 一个页面上传多个文件的话,maxRequestLength要指定总和。
Just need to take into account if you have three upload fields on one page and want each to be limited to 10 MB you need a maxRequestLength of at least 30 MB to handle it.

2. 给服务器上的.net framework打service pack.

我也不知道是不是能解决问题。

另外executionTimeout="60" 60s是不是有点少啊,在internet上几M文件的传输有可能超过60s的。先设置个大值用来确定是,还是不是这个问题。
coodd 2009-03-23
  • 打赏
  • 举报
回复
上传大小有限制,出异常是正常情况,无非是不让异常影响程序运行罢了。
可以用try...catch块

try
{
SaveAs(...);
}
Catch
[
//输出文件过大的提示
}
SATAN1122 2009-03-23
  • 打赏
  • 举报
回复
SATAN1122 2009-03-23
  • 打赏
  • 举报
回复
难道没人知道吗?
软件简介:

此为动网论坛V6.1.0正式版本,升级安装请看相关动网论坛专区固顶贴中的说明

全面引入ASP+JS架构编写,ASP主模块采用类模块编写

性能全面提升50%以上,速度提升30%以上,对数据库索引引入前次优化,ACCESS数据库即使是在20万帖子的情况下速度也毫不逊色


1、全面修正多级分类版面错位现象,原来出现问题的可以先使用复位所有版面在进行调整(引用shinzeal版主补丁并增加相应修正)
2、版面广告和积分恢复为Final版本的多版面可做不同设置
3、用户信息管理加入组合查询(引用shinzeal版主补丁)
4、论坛日志后台管理,可选择查看: 全部日志 | 贴子管理 | 固顶操作 | 奖惩操作 | 用户处理 | 后台事件0 | 后台事件1 | 后台事件2 |,后台日志可记录所有request和Post记录,并且不能清空两天内的日志,所有操作将记录在此
5、友情连接引入批量管理和删除,类似修改等级效果。
6、插件管理
7、上传文件管理全面改动
快速查询:所有上传文件、24小时内上传文件、1个月内上传文件、3个月内上传文件、下载和点击前100位上传图片
高级查询:分版面或所有版面、下载次数多于或者少于次数、浏览次数多于或者少于次数、上传天数多于或者少于次数、附件作者、附件说明、附件大小、附件分类、附件类型
清理功能:直接删除文件和记录、清理当前记录、清理所有上传记录、按照月份目录清理(新版在支持FSO的情况下可以自动按照月份在上传目录生成目录)
8、压缩、备份、恢复数据库功能重新整理一下,原先的这部分功能也有问题出现在当有人访问论坛的时候由于数据库正在使用而不许更新,因此这里需要重新关闭数据库并打开数据库然后马上进行操作
9、论坛帮助,分前后台帮助
10、版面高级设置和用户具体权限设置加入多版面更新功能,可选择更新保存目标:该版面 所有版面 相同分类下所有版面(不包括分类) 相同分类下所有版面(包括分类) 同分类同级别版面
11、版面广告和积分设置恢复原先版本的可以多版面设置不同广告以及积分功能
12、用户组图例改在用户组管理中设置,可设置是否在首页显示以及排序
13、增加主题特殊标签
14、增加flash单独控制标签
15、版面高级设置增加主题最多能输入字符
16、免费版全面向上兼容SQL数据库
17、用户组设置:注册后多少分钟能发言、注册后多少分钟能发短信
18、图片设置增加可查看论坛图片目录所有的图片
19、更多请看新版

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧