ASP.NET上传大文件解决方案
这次在项目中,用到了大文件上传,要上传的文件有100多m,于是研究现在国内使用的大文件上传的
组件发现用的比较多的有两个控件AspnetUpload 2.0和Lion.Web.UpLoadModule,另外还有思归在它的博
客堂中所说的办法 http://blog.joycode.com/saucer/archive/2004/03/16/16225.aspx
两个控件的方法是:利用隐含的HttpWorkerRequest,用它的GetPreloadedEntityBody 和
ReadEntityBody方法从IIS为ASP.NET建立的pipe里分块读取数据。Chris Hynes为我们提供了这样的一个
方案(用HttpModule),该方案除了允许你上传大文件外,还能实时显示上传进度。
Lion.Web.UpLoadModule和AspnetUpload 两个.NET组件都是利用的这个方案。
当上传单文件时,两个软件的方法是一样的,继承HttpModule
复制 保存
HttpApplication application1 = sender as HttpApplication;
HttpWorkerRequest request1
= (HttpWorkerRequest) ((IServiceProvider) HttpContext.Current).GetService
(typeof(HttpWorkerRequest));
try
{
if (application1.Context.Request.ContentType.IndexOf("multipart/form-data") <=
-1)
{
return;
}
//Check The HasEntityBody
if (!request1.HasEntityBody())
{
return;
}
in
相关文档:
下载 ADO.NET Driver for MySQLMySql.Data.dll
安装后,在安装目录下面找到Assemblies
文件夹,找到 MySql.Data.dll
(此文件是.Net访问MySQL数据库的一个驱动,完全ADO.NET数据访问模式,由MySQL官方提供,有多个版本可选择。)
学习的一个链接:http://www.cnblogs.com/wcfgroup/articles/1242256.html
创建一个 ......
//TransmitFile实现下载
protected void Button1_Click(object sender, EventArgs e)
{
/*
微软为Response对象提供了一个新的方法TransmitFile来解决使用Response.BinaryWrite
& ......
先看看ASP.NET页面刷新的实现方法:
第一:
private void Button1_Click( object sender, System.EventArgs e ) { Response.Redirect( Request.Url.ToString( ) ); } 第二:
private void Button2_Click( object sender, System.EventArgs e ) { Response.Write( " < script language=javascript>window.locatio ......
//使用验证方法
if (!InputValidator(txt.Text.Trim()))
{
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "myScript", "alert('\"文本框\"输入了非法字符或输入超长!');", t ......