几个方法:

    1. 修改文件上传大小的限制
    2. 以文件形式保存到服务器
    3. 转换成二进制字节流保存到数据库
    4. 将二进制通过循环的方式写入磁盘

一、修改文件上传大小的限制

通过对web.config和machine.config文件进行修改.

对网站根目录下的web.config进行修改:

原:

<httpRuntime executionTimeout="90" maxRequestLength="800000" useFullyQualifiedRedirectUrl="false"/>

对executionTimeout进行修改,可以修改超时时间.对maxRequestLength进行修改,可以修改上传文件的上限.

对机器上Microsoft.NET\Framework\v1.1.4322\CONFIG\machine.config进行修改:

原:

	<httpRuntime
executionTimeout="90"
maxRequestLength="4096"
useFullyQualifiedRedirectUrl="false"
minFreeThreads="8"
minLocalRequestFreeThreads="4"
appRequestQueueLimit="100"
enableVersionHeader="true"
/>

对executionTimeout进行修改,可以修改超时时间.对maxRequestLength进行修改,可以修改上传文件的上限.

还可以(没测试过,不知道是否有用):

在“服务”里关闭 iis admin service 服务。
   找到 C:\WINDOWS\system32\inetsrv下的 metabase.xml 文件。
   找到 ASPMaxRequestEntityAllowed 把它修改为需要的值(可修改为20M即:20480000)
   存盘,然后重启 iis admin service 服务。

前提方法:

    private string GetFilePath()
{
string Folder = Server.MapPath("temp");
string file = FileUpload1.FileName;
string RealFile = Folder + "\\" + file; return RealFile;
}
 

二、以文件形式保存到服务器

    protected void Upload_Click(object sender, EventArgs e)
{
string filename = FileUpload1.FileName;
FileUpload1.SaveAs(Server.MapPath("source/") + filename); }
    protected void Button4_Click(object sender, EventArgs e)
{
HttpPostedFile posted = FileUpload1.PostedFile;
string RealFile = GetFilePath();
posted.SaveAs(RealFile);
}
    protected void Button1_Click(object sender, EventArgs e)
{
string filepath = GetFilePath();
byte[] b = FileUpload1.FileBytes; FileStream fs = new FileStream(filepath, FileMode.Create);
fs.Write(b, 0, b.Length);
fs.Close();
}

三、转换成二进制字节流保存到数据库

    protected void Button3_Click(object sender, EventArgs e)
{
HttpPostedFile posted = FileUpload1.PostedFile;
byte[] b = new byte[posted.ContentLength];
posted.InputStream.Read(b, 0, b.Length);
/*
* 将数据写入数据库
*/
}

四、将二进制以循环的方式写入磁盘

    protected void Button3_Click(object sender, EventArgs e)
{
string filepath = GetFilePath();
FileStream stream = new FileStream(filepath, FileMode.Create); int length = 20480;
byte[] b = new byte[length];
try
{
int size = FileUpload1.PostedFile.InputStream.Read(b, 0, length); while (size > 0)
{
stream.Write(b, 0, size);
size = FileUpload1.PostedFile.InputStream.Read(b, 0, length);
}
}
catch (Exception ex)
{
Response.Write(ex.Message + "<br/>");
Response.Write(ex.InnerException.Message);
}
finally
{
if (stream != null)
{
stream.Flush();
stream.Close();
}
}
}

附:

    1. 在IIS中调大一些脚本超时时间,操作方法是: 在IIS的“站点或虚拟目录”的“主目录”下点击“配置”按钮,设置脚本超时时间为:300秒 (注意:不是Session超时时间)
    2. 解决SERVER 2003无法下载超过4M的附件问题
      在“服务”里关闭 iis admin service 服务。
      找到 windows\system32\inetsrv\ 下的 metabase.xml 文件。
      找到 AspBufferingLimit 把它修改为需要的值(可修改为20M即:20480000)
      存盘,然后重启 iis admin service 服务。

Asp.Net--上传大文件(页面超时)的更多相关文章

  1. ASP.NET上传大文件的问题

    原文:http://www.cnblogs.com/wolf-sun/p/3657241.html?utm_source=tuicool&utm_medium=referral 引言 之前使用 ...

  2. Asp.Net上传大文件带进度条swfupload

    Asp.Net基于swfupload上传大文件带进度条百分比显示,漂亮大气上档次,大文件无压力,先看效果 一.上传效果图 1.上传前界面:图片不喜欢可以自己换 2.上传中界面:百分比显示 3.上传后返 ...

  3. ASP.NET上传大文件出现网页无法显示的问题

    使用FileUpload上传的时候,默认允许大小是4M,而当小于4M的时候正常运行:当超过4M将显示网页无法显示.解决方法如下: 在web.config中的<system.web>< ...

  4. asp.net上传大文件-请求筛选模块被配置为拒绝超过请求内容长度的请求

    HTTP错误404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求,原因是Web服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值(IIS 7 默认文件上传大 ...

  5. ASP.Net上传大文件解决方案之IIS7.0下的配置

    开源的Brettle.Web.NeatUpload.在公司IIS6.0使用正常,但是在Windows 2008 server IIS7上使用不正常.在网上看到一个解决办法但是没有效果 IIS 7 默认 ...

  6. asp.net上传大文件

    Asp.net默认允许上传文件的最大值为4M. 如果想要上传更大的文件,需要修改web.config文件,方法是: 在<system.web>节点中添加代码 <httpRuntime ...

  7. ASP.NET 上传大文件(原创)

    问题描述 需要在网站中上传文件,但是当文件大小太大的时候IIS会拒绝连接,导致用户看到不友好的错误界面. 解决方法 1.服务器端处理 在globle.asax中的protected void Appl ...

  8. asp.net上传大文件的解决方案

    IE的自带下载功能中没有断点续传功能,要实现断点续传功能,需要用到HTTP协议中鲜为人知的几个响应头和请求头. 一. 两个必要响应头Accept-Ranges.ETag 客户端每次提交下载请求时,服务 ...

  9. ASP.NET上传大文件报错,IIS7.0

    打开你系统盘(我是C盘),找到C:\Windows\System32\inetsrv\config\schema目录,该目录下有一个IIS_schema.xml,右击打开文件,Ctrl+F,然后输入& ...

随机推荐

  1. YesFinder - 网页文件管理系统 V2.0

    2.0版增加了模态框并重写了右键菜单插件.界面改为全中文.使用方式更加灵活. 同时,文件及目录改名更方便,直接双击名称就可改名. 这是DEMO的效果图. 1.功能上的主要改进是可以双击改文件/目录名称 ...

  2. Canvas -画图 关键字

    颜色.样式和阴影 属性 描述 fillStyle 设置或返回用于填充绘画的颜色.渐变或模式 strokeStyle 设置或返回用于笔触的颜色.渐变或模式 shadowColor 设置或返回用于阴影的颜 ...

  3. 基于python的接口测试学习笔记一(初出茅庐)

    第一次写博客笔记,讲一下近来学习的接口自动化测试.网上查阅了相关资料,最后决定使用python语言写接口测试,使用的是python的第三方库requests.虽然python本身标准库中的 urlli ...

  4. Web开发-各状态码的意思

    常见的HTTP 1.1状态码以及它们对应的状态信息和含义 100 Continue 初始的请求已经接受,客户应当继续发送请求的其余部分.(HTTP 1.1新) 101 Switching Protoc ...

  5. css、js的相互阻塞

    先决条件:脚本前面存在外部样式 以下试验虽然是在chrome下,但是对于IE8+以及其他浏览器也适用. 1.内联脚本(http://jsbin.com/mudab/1) <!DOCTYPE ht ...

  6. strnclmp和strlen函数的用法

    一.strncmp 函数 函数原型: 1.函数原型:int strncmp (const char *s1, const char *s2, size_t  n) 2.头文件: <string. ...

  7. C语言#pragma预处理

    在所有的预处理指令中,#pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作.#pragma 指令对每个编译器给出了一个方法,在保持与C 和C ++语言完全 ...

  8. Linux标准输入、输出和错误和文件重定向(转) --- good

    标准输入.输出和错误 当我们在shell中执行命令的时候,每个进程都和三个打开的文件相联系,并使用文件描述符来引用这些文件.由于文件描述符不容易记忆,shell同时也给出了相应的文件名.下面就是这些文 ...

  9. delphi7编写客户端调用java服务器端webservice示例

    1. 首先取得java-webservice服务器端地址.我的是:http://localhost:8080/mywebservice/services/mywebservice?wsdl 2. 然后 ...

  10. 附加、分离数据库和备份、还原数据库的区别(转载于中雪的BLOG)

    备份和恢复的概念: 备份和恢复组件是SQL Server的重要组成部分.备份就是指对SQL Server数据库及其他相关信息进行拷贝,数据库备份记录了在进行备份这一操作时数据库中所有数据的状态,如果数 ...