看到一篇关于上传文章,先抄过来,慢慢学习

原创 2005年04月30日 21:11:00
原贴在这里:http://blog.joycode.com/saucer/archive/2004/03/16/16225.aspx

我们在上传大文件时都遇到过这样或那样的问题。设置很大的maxRequestLength 值并不能完全解决问题,因为ASP.NET会block直到把整个文件载入内存后,再加以处理。实际上,如果文件很大的话,我们经常会见到 Internet Explorer显示 "The page cannot be displayed - Cannot find server or DNS Error",好像是怎么也catch不了这个错误。为什么?因为这是个client side错误,server side端的Application_Error是处理不到的,可以参考这个帖子研究一下产生这个错误的机理。

handling server error when upload file too large

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

  IServiceProvider provider = (IServiceProvider) HttpContext.Current;
  HttpWorkerRequest wr = (HttpWorkerRequest) provider.GetService(typeof(HttpWorkerRequest));
  byte[] bs = wr.GetPreloadedEntityBody();
  ....
  if (!wr.IsEntireEntityBodyIsPreloaded())
  {
        int n = 1024;
        byte[] bs2 = new byte[n];
        while (wr.ReadEntityBody(bs2,n) >0)
       {
             .....
        }
  }

Chris Hynes为我们提供了这样的一个方案(用HttpModule),该方案除了允许你上传大文件外,还能实时显示上传进度:

ASP.NET Upload Magic Part 2

这里有他讲座的PPT文件:

Uploading with ASP.NET (part 1)

Uploading with ASP.NET (part 2)

这里有开源的代码,大家可以学些一下。
http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=fe16801f-2d2c-49fd-be31-d28135365379

ARM的存储器映射与存储器重映射【转载】2009-12-14 10:29最近在用LPC2148,看到了一篇文章,感觉很有帮助,就转了过来。

ARM的存储器映射与存储器重映射【转载】2009-12-14 10:29最近在用LPC2148,看到了一篇文章,感觉很有帮助,就转了过来。 arm处理器本身所产生的地址为虚拟地址,每一个arm芯片内...

在网上看到的GDI介绍,太多了,先拿过来,慢慢看,转CODESKY的

ps:您可以转载,但请注明出处;你可以修改,但请将修改结果告诉我。   An Introduction to GDI GDI 介绍   To paint the client area o...

JBPM5 群里的一篇文章。转载过来。记录一下

好多人在一开始使用jbpm-human-task的服务时都会遇到使用这个WSHumanTaskHandler的问题。针对Mina,JBPM提供了WSHumanTaskHandler、CommandBa...

转载一篇文章,这几天有相关问题要处理,学习一下先

android休眠与唤醒驱动流程分析2 2011-05-06 15:46 在pm_suspend()函数中,enter_state()函数被调用,从而进入标准linux休眠过程。 in...
  • lgy1980
  • lgy1980
  • 2011年11月03日 13:53
  • 204

从老程序哪里抄过来的经验,大家共勉

1. 基础的重要性。我总是不断强调基础的重要性,因为我是有切身体会的。基础的东西可以让你受用一生。struts出来了,webwork出 来,tapestry出来了,jsf出来了,struts2也出来了...

学姐面经,不管怎样,先转载过来,以后慢慢享用

吐血整理:宝洁、建行总部直属中心、广东省建行、广州移动、广州中行、华为等offer之路分享,献给学弟学妹们的新年礼物~ 2012-01-11 21:18 | (分类:默认分类) 这学期快要结...

hibernate中ehcache设置缓存策略和数据库隔离级别的关系(把2年前的文章先贴过来).

首先,二级缓存所适用的情况为以下3种:经常被访问,不经常改动,数据量不大。 总之,也就是数据库的更新需要一定的隔离机制,而缓存的并发更新也需要一定的隔离机制。 这主要是由于多线程并发操...

【Android】数据存储数据库SQLite(之前有看到的一篇关于SQLite文章,简单明了、覆盖较全面适合学习)

一:前言 之前介绍过Android中保存数据的两种方式:SharedPreferences和File,这篇介绍另一种存储数据的方式——数据库SQLite——轻量级数据库系统。 数据库:简单来说可视为电...

真实的SMM Rootkit——BIOS SMI句柄的逆向与钩挂_很好的一篇文章在黑客学习基地上看到的和大家分享

摘自:黑防 文章作者:fahrenheit 1 引言         本文将探索一些BIOS中的SMI代码,所使用到的固件都来自于ASUS(华硕)的主板,尤其是基于Intel P45硬件的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:看到一篇关于上传文章,先抄过来,慢慢学习
举报原因:
原因补充:

(最多只允许输入30个字)