`

asp.net中实现文件下载功能

 
阅读更多
//TransmitFile实现下载
protected void 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/aaa.zip");
Response.TransmitFile(filename);
}

//WriteFile实现下载
protected void Button2_Click(object sender, EventArgs e)
{
/*
using System.IO;

*/

string fileName ="aaa.zip";//客户端保存的文件名
string filePath=Server.MapPath("DownLoad/aaa.zip");//路径

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分块下载
protected void Button3_Click(object sender, EventArgs e)
{

string fileName = "aaa.zip";//客户端保存的文件名
string filePath = Server.MapPath("DownLoad/aaa.zip");//路径

System.IO.FileInfo fileInfo
= new System.IO.FileInfo(filePath);

if (fileInfo.Exists == true)
{
const long ChunkSize = 102400;//100K 每次读取文件,只读取100K,这样可以缓解服务器的压力
byte[] buffer = new byte[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();
}
}

//流方式下载
protected void Button4_Click(object sender, EventArgs e)
{
string fileName = "aaa.zip";//客户端保存的文件名
string filePath = Server.MapPath("DownLoad/aaa.zip");//路径

//以字符流的形式下载文件
FileStream fs = new FileStream(filePath, FileMode.Open);
byte[] bytes = new byte[(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();

}
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    asp.net 实现图片下载功能

    在ASP.NET中实现图片下载功能是一项常见的需求,尤其是在构建网站时提供用户下载资源。与简单的文本或文件链接不同,图片通常会被浏览器解析并显示,而不是触发下载。本篇将详细介绍如何在ASP.NET环境下构建一个有效...

    asp.net批量打包下载文件

    通过以上步骤,你可以在ASP.NET MVC中实现批量打包下载的功能。提供的代码片段虽然简略,但展示了关键的实现思路。实际应用中,还需要结合项目具体需求进行扩展和完善。记住,始终关注代码的可读性、可维护性和安全...

    实现在asp.net中调用打印功能

    描述 "实现在 asp.net 中调用打印功能 简单地整理了些资料" 表明,这篇文章将简单地整理了一些相关的资料,以便帮助读者快速了解如何在 ASP.NET 中实现打印功能。 标签解释 标签 "asp.net 打印 功能" 表明,这篇...

    ASP.NET 实现的上传下载功能

    总之,ASP.NET提供了强大的支持来实现文件上传和下载功能。通过理解和实践这些技术,你可以创建一个稳定且用户友好的文件管理系统。在实际项目中,还需要根据业务需求进行定制和优化,以确保系统的安全性和性能。

    基于ASP.NET文件上传、下载的网络硬盘系统 源码

    2. **文件上传组件**:在ASP.NET中,`HttpFileUpload`控件是实现文件上传的核心组件。通过在HTML表单中添加该控件,用户可以选择本地文件并提交到服务器。服务器端的代码则负责接收文件,通常使用`Request.Files`...

    ASP.NET MVC 文件管理功能Demo

    ASP.NET MVC 文件管理功能Demo是基于ASP.NET MVC框架和Easy-UI前端库开发的一个实践项目,旨在实现对本地文件系统的全面操作。这个Demo涵盖了多种文件操作功能,包括上传、下载、复制、粘贴、压缩以及重命名等,使得...

    asp.net多文件下载 MVC多文件下载

    通过以上步骤,你可以在ASP.NET MVC项目中实现多文件下载的功能。请记住,实际的实现可能需要根据项目的需求和具体环境进行调整。在Testsite项目中,你可以找到相关的代码示例和配置,帮助你更好地理解和应用这些...

    asp.net 批量上传文件

    在这个场景下,我们可以使用jQuery库中的`jquery.form`插件来增强页面的交互性,并结合ASP.NET后端技术,实现异步、无刷新的批量文件上传功能。下面我们将详细探讨这个过程中的关键知识点。 首先,`jQuery.form`...

    【ASP.NET编程知识】Asp.net实现MVC处理文件的上传下载功能实例教程.docx

    ASP.NET MVC 实现文件上传下载功能实例教程 一、概述 在 ASP.NET 程序开发中,文件上传和下载功能非常常见。 Asp.net.Mvc 框架提供了多种方式来实现文件上传和下载功能。本文将通过实例形式来实现文件上传和下载...

    基于ASP.net的企业文件管理系统源码.zip

    对于学习者或开发者来说,这是一个极好的资源,可以深入理解ASP.NET如何应用于企业级文件管理系统的实现,以及如何利用C#(ASP.NET的主要编程语言)来设计和实现文件管理功能。 【标签】:“毕业设计 C# Java PHP”...

    【ASP.NET编程知识】ASP.NET Core文件上传与下载实例(多种上传方式).docx

    使用 ASP.NET Core 的文件上传机制,可以实现多文件上传、文件大小限制、文件类型限制等功能。此外,还可以使用 TagHelper 来简化表单的编写。 知识点6: 文件下载的实现 文件下载的实现可以使用 FileResult 来返回...

    【ASP.NET编程知识】Asp.Net Core实现Excel导出功能的实现方法.docx

    在 ASP.NET Core 中实现 Excel 导出功能需要掌握 ClosedXML 的使用方法,以及 ASP.NET Core 中的文件下载机制。通过本篇文章,可以了解如何使用 ClosedXML 将数据导出成 CSV 文件和 XLSX 文件,并且可以根据需要...

    asp.net 导出 pdf 文件

    在本篇文章中,我们将深入探讨如何在 ASP.NET 环境下实现 PDF 的生成与导出。 首先,我们需要了解 ASP.NET 提供的一些基本工具和技术。ASP.NET 是微软推出的一种用于构建 Web 应用程序的框架,它支持多种编程语言,...

    ASP.NET 实现 上传下载案例

    在这个“ASP.NET 实现上传下载案例”中,我们将探讨如何使用ASP.NET来实现文件的上传和下载功能。 首先,让我们了解上传功能的实现。在ASP.NET中,我们可以使用`<asp:FileUpload>`控件来让用户选择要上传的文件。...

    asp.net C# 利用FTP 远程下载文件

    总的来说,通过利用C#的`System.Net`命名空间,你可以方便地在ASP.NET环境中实现FTP远程文件下载功能,为用户提供高效、安全的文件获取服务。在实际开发中,还需要考虑错误处理、性能优化以及安全性等问题,确保应用...

    【ASP.NET编程知识】asp.net单文件带进度条上传的解决方案.docx

    在本文中,我们使用ASP.NET缓存机制来实现文件上传进度条的显示。ASP.NET缓存机制能够帮助我们缓存文件上传的信息,从而实现进度条的显示。在本文中,我们使用ASP.NET缓存机制来缓存文件上传的信息,然后使用ajax...

    asp.net+Ajax实现Excel文件导出

    本篇文章将详细讲解如何利用ASP.NET与Ajax技术实现在Web应用中导出Excel文件。 首先,ASP.NET是Microsoft开发的一个用于构建动态网站、Web应用程序和服务的框架。它基于.NET Framework,提供了丰富的服务器控件、...

    【ASP.NET编程知识】ASP.NET五步打包下载Zip文件实例.docx

    下载方法是指 ASP.NET 中的下载方法,我们可以使用 DownLoadFiles 方法来实现下载文件的功能。 ### 调用方法 调用方法是指在 ASP.NET 中调用下载方法的过程。在这个步骤中,我们可以使用 ProcessRequest 方法来...

    asp.net实现web打印功能

    总结,ASP.NET实现Web打印功能主要依赖于客户端的JavaScript以及合理的CSS样式管理。通过结合服务器端的控制,可以提供更加灵活和定制化的打印体验。"print.html"文件很可能是这样一个简单的示例,展示如何通过...

Global site tag (gtag.js) - Google Analytics