请教asp.net上传大文件的问题

sywcf 2009-10-29 09:05:12
现在我们在做个项目(vs2003,C#),需要上传大文件,我用.net自带的控件试了下,超过20M多就会卡死了,
我在网上找了一些源码,好多都是不全调试不了,或者内容很多,也没有注解,代码不好读懂,请达人们给提供一些这方法的思路,最好有简单的源码例子,在此多谢了!
...全文
636 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyuekuangxiang 2010-12-14
  • 打赏
  • 举报
回复
我也遇到了同样的问题,现在受教了!多谢各位了!
suners 2010-12-14
  • 打赏
  • 举报
回复
基本做好人家说不要配置最好 那怎么做 晕死
khjian 2009-10-29
  • 打赏
  • 举报
回复
学习
cheng3873391 2009-10-29
  • 打赏
  • 举报
回复
学习
yanglei6979431 2009-10-29
  • 打赏
  • 举报
回复
占位 学习
fuda_1985 2009-10-29
  • 打赏
  • 举报
回复
学习。没碰到过。
sywcf 2009-10-29
  • 打赏
  • 举报
回复
我先去试一下楼上各位说的,没搞明白下午过来请教
sunxw18 2009-10-29
  • 打赏
  • 举报
回复
http://www.cnblogs.com/bashan/archive/2008/05/23/1206095.html
这个里面的还行,几百M一点问题都没的!
jiangxuli 2009-10-29
  • 打赏
  • 举报
回复
我上传大文件就是这个web.config里面设置了一下:
<configuration>
<system.web>
<httpRuntime maxRequestLength="你要上传的最大字节数" executionTimeout="允许执行请求的最大秒数" />
</system.web>
</configuration>
不知道你的可以不?
zhongjiekangping 2009-10-29
  • 打赏
  • 举报
回复
上传大文件 基本上 都是分块上传的, 要不然一次 把 那么大数据 都拷贝到内存 会崩溃的 , web.config里面 会设置上传 的 最大限制
wuyq11 2009-10-29
  • 打赏
  • 举报
回复
大文件上传使用ftp或用组件如neatupload、SWFUload ,分块上传
<configuration>
<system.web>
<httpRuntime maxRequestLength="1048576" executionTimeout="3600" />
</system.web>
</configuration>
其中:maxRequestLength:指示 ASP.NET 支持的HTTP方式上载的最大字节数。该限制可用于防止因用户将大量文件传递到该服务器而导致的拒绝服务攻击。指定的大小以 KB 为单位。默认值为 4096 KB (4 MB)。executionTimeout:指示在被 ASP.NET 自动关闭前,允许执行请求的最大秒数。在当文件超出指定的大小时,如果浏览器中会产生 DNS 错误或者出现服务不可得到的情况,也请修改以上的配置,把配置数加大。
增加应用程序的 Web.config 文件的 元素中 memoryLimit 属性的值。
<configuration>
<system.web>
<processModel memoryLimit="80"/>
</system.web>
</configuration>
http://topic.csdn.net/u/20091010/22/d415fb55-56ec-4d06-984a-b66e9bef715d.html
http://topic.csdn.net/u/20090927/09/545b066d-cb73-47ae-bb99-3445343dc5d6.html
sywcf 2009-10-29
  • 打赏
  • 举报
回复
忘记说了,我要上传文件的目标是1G 以上。
sywcf 2009-10-29
  • 打赏
  • 举报
回复
首先感谢楼上各位兄弟的回贴,楼上说的可能都有道理,但具体实现还望详加指点,最好给段可用的源码啊
zhong2006 2009-10-29
  • 打赏
  • 举报
回复
用自带的控件我试过传200多M的文件,没啥问题!
自己设置下web.config文件,修改下操作系统的上传文件限制!
liujintaozyc 2009-10-29
  • 打赏
  • 举报
回复
可以用线程 分段上传
一段一段的上传
kart15 2009-10-29
  • 打赏
  • 举报
回复
我也想知道怎么弄





拓展训练
体验式培训
sywcf 2009-10-29
  • 打赏
  • 举报
回复
这个是我从一个转载的文章上copy过来的,我昨天也看到过思归老大的原创,就是这些:

解决的方法是利用隐含的 HttpWorkerRequest,用它的GetPreloadedEntityBody和ReadEntityBody方法从IIS为ASP.NET 建立的pipe里分块读取数据。实现方法如下:

IServiceProvidERProvider=(IServiceProvider)HttpContext.Current;
HttpWorkerRequestwr=(HttpWorkerRequest)provider.GetService(typeof(HttpWorkerRequest));
byte[]bs=wr.GetPreloadedEntityBody();
....
....
....
if(!wr.IsEntireEntityBodyIsPreloaded())
{
  intn=1024;
  byte[]bs2=newbyte[n];
  while(wr.ReadEntityBody(bs2,n)>0)
  {
  .. ...
  }
}
cpp2017 2009-10-29
  • 打赏
  • 举报
回复
贴出来看看?
sywcf 2009-10-29
  • 打赏
  • 举报
回复
我在网上查了一思归的文章,他说可以提高效率,但老大只是给了几句简单的示例,小弟笨,没搞明白怎么才能实现,其他人也只是转载
cpp2017 2009-10-29
  • 打赏
  • 举报
回复
大小限制是可以改的,但效率慢是form上传没办法改的
加载更多回复(6)

62,046

社区成员

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

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

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

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