`
- 浏览:
1085362 次
-
一、//TransmitFile实现下载
protectedvoid Button1_Click(object sender, EventArgs e)
{
/*
微软为Response对象提供了一个新的方法TransmitFile来解决使用Response.BinaryWrite
下载超过400mb的文件时导致Aspnet_wp.exe进程回收而无法成功下载的问题。
代码如下:
*/
Response.ContentType ="application/x-zip-compressed";
Response.AddHeader("Content-Disposition", "attachment;filename=z.zip");
string filename = Server.MapPath("DownLoad/z.zip");
Response.TransmitFile(filename);
}
二、//WriteFile实现下载
protectedvoid Button2_Click(object sender, EventArgs e)
{
/*
using System.IO;
*/
string fileName ="asd.txt";//客户端保存的文件名
string filePath = Server.MapPath("DownLoad/aaa.txt");//路径
FileInfo fileInfo =new FileInfo(filePath);
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.AddHeader("Content-Disposition", "attachment;filename="+ fileName);
Response.AddHeader("Content-Length", fileInfo.Length.ToString());
Response.AddHeader("Content-Transfer-Encoding", "binary");
Response.ContentType ="application/octet-stream";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
Response.WriteFile(fileInfo.FullName);
Response.Flush();
Response.End();
}
三、 //WriteFile分块下载
protectedvoid Button3_Click(object sender, EventArgs e)
{
string fileName ="aaa.txt";//客户端保存的文件名
string filePath = Server.MapPath("DownLoad/aaa.txt");//路径
System.IO.FileInfo fileInfo =new System.IO.FileInfo(filePath);
if (fileInfo.Exists ==true)
{
constlong ChunkSize =102400;//100K 每次读取文件,只读取100K,这样可以缓解服务器的压力
byte[] buffer =newbyte[ChunkSize];
Response.Clear();
System.IO.FileStream iStream = System.IO.File.OpenRead(filePath);
long dataLengthToRead = iStream.Length;//获取下载的文件总大小
Response.ContentType ="application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename="+ HttpUtility.UrlEncode(fileName));
while (dataLengthToRead >0&& Response.IsClientConnected)
{
int lengthRead = iStream.Read(buffer, 0, Convert.ToInt32(ChunkSize));//读取的大小
Response.OutputStream.Write(buffer, 0, lengthRead);
Response.Flush();
dataLengthToRead = dataLengthToRead - lengthRead;
}
Response.Close();
}
}
四、//流方式下载
protectedvoid Button4_Click(object sender, EventArgs e)
{
string fileName ="aaa.txt";//客户端保存的文件名
string filePath = Server.MapPath("DownLoad/aaa.txt");//路径
//以字符流的形式下载文件
FileStream fs =new FileStream(filePath, FileMode.Open);
byte[] bytes =newbyte[(int)fs.Length];
fs.Read(bytes, 0, bytes.Length);
fs.Close();
Response.ContentType ="application/octet-stream";
//通知浏览器下载文件而不是打开
Response.AddHeader("Content-Disposition", "attachment; filename="+ HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
Response.BinaryWrite(bytes);
Response.Flush();
Response.End();
}
//----------------------------------------------------------
publicvoid DownloadFile( System.Web.UI.Page WebForm,String FileNameWhenUserDownload ,String FileBody )
{
WebForm.Response.ClearHeaders();
WebForm.Response.Clear();
WebForm.Response.Expires =0;
WebForm.Response.Buffer =true;
WebForm.Response.AddHeader("Accept-Language", "zh-tw");
//'文件名称
WebForm.Response.AddHeader("content-disposition", "attachment; filename='"+System.Web.HttpUtility.UrlEncode(FileNameWhenUserDownload, System.Text.Encoding.UTF8)+"'");
WebForm.Response.ContentType ="Application/octet-stream";
//'文件内容
WebForm.Response.Write(FileBody);//-----------
WebForm.Response.End();
}
//上面这段代码是下载一个动态产生的文本文件,若这个文件已经存在于服务器端的实体路径,则可以通过下面的函数:
publicvoid DownloadFileByFilePath( System.Web.UI.Page WebForm,String FileNameWhenUserDownload ,String FilePath )
{
WebForm.Response.ClearHeaders();
WebForm.Response.Clear();
WebForm.Response.Expires =0;
WebForm.Response.Buffer =true;
WebForm.Response.AddHeader("Accept-Language", "zh-tw");
//文件名称
WebForm.Response.AddHeader("content-disposition", "attachment; filename='"+ System.Web.HttpUtility.UrlEncode(FileNameWhenUserDownload, System.Text.Encoding.UTF8) +"'" );
WebForm.Response.ContentType ="Application/octet-stream";
//文件内容
WebForm.Response.Write(System.IO.File.Rea}dAllBytes(FilePath));//---------
WebForm.Response.End();
}
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
【ASP.NET文件上传与下载系统】是一个典型的Web应用程序,它允许用户通过网络进行文件的上传和下载操作。这个系统基于微软的ASP.NET框架构建,利用了ASP.NET的强大功能和高效性能,为用户提供了一种安全、便捷的方式...
在 ASP.NET 中处理 PDF,通常有以下几种方法: 1. **iTextSharp**:这是一个流行的开源库,可以用于创建、编辑和读取 PDF 文件。使用 iTextSharp,我们可以创建一个新的 PDF 文档,添加文本、图像、表格等元素,...
在这个"asp.net 文件下载demo"中,我们将会探讨如何在ASP.NET 3.5环境下实现安全的文件下载,同时通过文件路径的加密保护来增强安全性。 首先,让我们了解文件下载的基本流程。在ASP.NET中,你可以通过HTTP响应对象...
在“ASP.NET大文件上传和下载小项目”中,我们重点关注的是如何处理大文件的上传和下载,以及涉及到的几个关键组件和技术。 1. **大文件上传**:在传统的HTTP协议中,文件上传通常受到浏览器和服务器的限制,对文件...
ASP.NET文件管理是一个高效且用户友好的在线文件管理系统,它为开发者提供了在Web环境中便捷地处理文件的能力。这个系统基于Microsoft的ASP.NET框架,利用其强大的功能和灵活性,为用户提供了一个安全、稳定且易于...
"表明这个安装包经过验证,确保在安装后能够正常工作,用户可以放心下载和使用,以启用ASP.NET应用程序中的AJAX功能。 在实际开发中,ASP.NET AJAX的核心组件包括以下几点: 1. **UpdatePanel**:这是ASP.NET AJAX...
8. Profile:ASP.NET的Profile提供了一种方便的方式来存储和检索用户的个性化设置。在源页面设置用户配置文件的属性,然后在目标页面读取。 9. 使用自定义Control State:如果自定义控件需要在页面间保持状态,可以...
标题中的“ftp.rar_asp.net ftp_asp.net 文件_asp.net文件下载_ftp_ftp in asp.net”表明这是一个关于ASP.NET中实现FTP(文件传输协议)功能的资源包,可能包含了源代码、教程或者示例。在描述中提到,“C# Asp.net ...
在ASP.NET开发中,实现文本文件的拖放操作可以极大地提升用户体验,使用户能够更加直观、便捷地上传文件。本文将详细讲解如何在ASP.NET环境中使用VB.NET编写拖放功能,特别是针对文本文件的处理。 首先,理解拖放...
在Asp.net开发中,文件批量上传是一项常见的需求,尤其在大数据时代,用户可能需要一次上传多个文件。Flex作为一款强大的富互联网应用开发框架,能够提供丰富的用户界面体验,与Asp.net结合可以构建高性能、交互性强...
### ASP.NET 文件读写操作详解 #### 一、概述 在ASP.NET开发中,文件的读写是非常常见的需求之一。无论是处理用户上传的文件、读取配置文件...希望这些内容能够帮助您更好地理解和掌握ASP.NET文件操作的相关知识。
然而,标准的ASP.NET文件上传机制对单个文件大小有限制,通常为2-4MB,这在处理大文件时会显得不足。 SWFFileUploader是一个流行的JavaScript库,它允许在浏览器端实现大文件分块上传。该库利用Adobe Flash技术来绕...
### ASP.NET配置文件语法详解:WEB.CONFIG #### 引言 在ASP.NET开发环境中,`web.config`文件扮演着至关重要的角色,它是应用程序的核心配置文件,用于存储与应用程序相关的所有配置信息。`web.config`是一个XML...
ASP.NET 是微软开发的一种用于构建动态网站、web应用程序和web服务的开源框架。在这个场景中,我们关注的是如何使用ASP.NET来实现多文件上传的功能。多文件上传在现代Web应用中非常常见,例如用户可能需要上传一组...
在这个"asp.net的几种传值方式练习"中,我们将探讨四种主要的数据传递方法:Session、Cookie、Application和Server.Transfer。 1. Session(会话): Session是ASP.NET中用于存储用户特定数据的重要机制。当用户...
要在ASP.NET中处理超过2GB的大文件上传,我们需要对几个关键设置进行调整和优化: 1. **配置IIS限制**:IIS(Internet Information Services)作为ASP.NET应用程序的托管环境,其默认配置可能不允许上传如此大的...
ASP.NET 是微软公司开发的一种用于构建Web应用程序的框架,它基于.NET Framework,为开发者提供了丰富的功能和工具,简化了Web应用的开发过程。这个实例源码可能是为了展示如何使用ASP.NET来开发一个在线考试系统,...
在这个主题“ASP.NET中几种有用的特效”中,我们将探讨如何结合ASP.NET 2.0和JQuery来实现一些常见的网页特效,提升用户的交互体验。 1. **滑动菜单**:利用JQuery的slideToggle方法,可以在用户点击时实现菜单的...
总的来说,ASP.NET文件管理系统是一个结合了服务器端编程、文件I/O操作、用户交互以及安全控制的综合项目。开发者需要熟练掌握.NET框架,理解HTTP协议,了解文件系统和数据库操作,同时具备一定的前端开发能力,才能...
ASP.NET上传模块是ASP.NET应用程序中的一个重要组成部分,它允许用户通过网页将文件上传到服务器。在Web开发中,文件上传功能常用于...理解这些核心概念和技术对于开发和维护高效、安全的ASP.NET文件上传系统至关重要。