`
isiqi
  • 浏览: 16825326 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

asp.net文件下载

阅读更多

//TransmitFile实现下载
protected void Button1_Click1(object sender, EventArgs e)
{
/*
微软为Response对象提供了一个新的方法TransmitFile来解决使用Response.BinaryWrite
下载超过400mb的文件时导致Aspnet_wp.exe进程回收而无法成功下载的问题。
代码如下:
*/
string strFileName = "三部闲置设备管理系统操作手册IEMS.ppt";
Response.ContentType = "application/x-zip-compressed";
//Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
string filename = BLL.Config.PART_EM_UPLOAD_DOC + strFileName;
//BLL.Config.PART_EM_UPLOAD_DOC 为路径 ("D:/EMUploadDoc/")
Response.AddHeader("Content-Disposition", "attachment;filename=" +Server.UrlPathEncode(strFileName));
//Server.UrlPathEncode()解决文件名的乱码问题.

Response.TransmitFile(filename);
} //WriteFile实现下载
protected void 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分块下载
protected void 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)
{
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.txt";//客户端保存的文件名
string filePath = Server.MapPath("DownLoad/aaa.txt");//路径
//以字符流的形式下载文件
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 文件下载demo

    在这个"asp.net 文件下载demo"中,我们将会探讨如何在ASP.NET 3.5环境下实现安全的文件下载,同时通过文件路径的加密保护来增强安全性。 首先,让我们了解文件下载的基本流程。在ASP.NET中,你可以通过HTTP响应对象...

    ftp.rar_asp.net ftp_asp.net 文件_asp.net文件下载_ftp_ftp in asp.net

    标题中的“ftp.rar_asp.net ftp_asp.net 文件_asp.net文件下载_ftp_ftp in asp.net”表明这是一个关于ASP.NET中实现FTP(文件传输协议)功能的资源包,可能包含了源代码、教程或者示例。在描述中提到,“C# Asp.net ...

    asp.net文件下载源代码

    ASP.NET文件下载功能是Web应用程序中的一个重要组成部分,它允许用户在服务器端获取并下载各种类型的文件,如文档、图片、音频或视频等。本源代码实现了B/S(浏览器/服务器)架构下的文件下载功能,适应于ASP.NET...

    彻底解决Asp.net 文件下载时文件名的中文乱码和空格异常全球性技术难题

    彻底解决Asp.net 文件下载时文件名的中文乱码和空格异常全球性技术难题 本文用 C# 代码解决了在目前四种流行浏览器中Asp.net 输出文件流时文件名的空格及中文字符乱码这两个问题。使用本文的代码,你将可以让 IE...

    asp.net文件下载方法 使用非常简单

    描述:文件下载,内有使用方法

    Asp.net文件在线管理系统源码_aspx开发教程.7z

    通过深入研究和分析这个Asp.NET文件在线管理系统源码,开发者可以掌握以上这些技术,并将其应用于实际项目中,提升自己的ASP.NET开发能力。同时,也可以根据需求进行定制和扩展,以满足更复杂的文件管理需求。

    asp.net批量打包下载文件

    在ASP.NET环境中,批量打包下载文件是一项常见的需求,特别是在数据导出或提供用户打包多份资源时。这个场景可以通过ASP.NET MVC框架实现,利用HTTP协议的特性,将多个文件合并成一个压缩包供用户下载。以下是对这个...

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

    【ASP.NET文件上传与下载系统】是一个典型的Web应用程序,它允许用户通过网络进行文件的上传和下载操作。这个系统基于微软的ASP.NET框架构建,利用了ASP.NET的强大功能和高效性能,为用户提供了一种安全、便捷的方式...

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

    在ASP.NET MVC框架中,实现多文件下载是一个常见的需求,特别是在构建企业级应用或网站时。这个场景通常出现在用户需要一次性获取多个相关文件,如报告、文档或图片等。本篇将详细介绍如何在ASP.NET MVC中实现这一...

    asp.net文件管理

    ASP.NET文件管理是一个高效且用户友好的在线文件管理系统,它为开发者提供了在Web环境中便捷地处理文件的能力。这个系统基于Microsoft的ASP.NET框架,利用其强大的功能和灵活性,为用户提供了一个安全、稳定且易于...

    asp.net文件上传下载程序 有数据库 下载可用

    ASP.NET文件上传下载程序是一个基于微软的ASP.NET技术构建的应用,用于实现用户在Web端上传和下载文件。这种程序通常包含后端服务器处理逻辑和前端用户界面,与数据库结合以存储文件元数据,如文件名、大小、上传...

    asp.net文件上传示例

    ASP.NET文件上传是Web开发中的常见功能,尤其在企业级应用和社交网络中,用户可能需要上传图片、文档等各类文件。在这个“asp.net文件上传示例”中,我们可以学习到如何在ASP.NET环境中实现这一功能。这个示例是用...

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

    这个系统可能包括用户登录、文件上传下载、权限控制、文件分类与搜索等功能,是学习和实践ASP.NET Web开发的宝贵资源。 【标签】"毕业设计"表明这个项目可能是某位学生作为其毕业课题完成的,展示了ASP.NET、C#等...

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

    ASP.NET Core 文件上传与下载实例(多种上传方式) 知识点1: ASP.NET Core 文件上传与下载实例 ASP.NET Core 2.0 已经很成熟,可以使用模型绑定上传文件。官方文档提供了相关的示例代码,可以作为参考。 知识点2:...

    ASP.NET文件参考 asp.net asp.net技巧

    本文件参考将深入探讨ASP.NET的核心概念、关键特性和实用技巧。 首先,ASP.NET的核心概念包括Page生命周期、控件事件处理和数据绑定。在Page生命周期中,页面经历初始化、加载、验证、呈现和卸载等阶段,开发者可以...

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

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

    asp.net版web文件管理器

    3. **文件下载**: 当用户点击下载链接时,服务器将文件内容流化并通过HttpResponse对象发送到客户端。 4. **文件操作**: 如删除、重命名、移动、复制文件,都是通过System.IO命名空间的类实现,比如DeleteFile、...

    asp.net 实现图片下载功能

    在ASP.NET中实现图片下载功能是...综上所述,实现ASP.NET图片下载功能涉及设置HTTP响应头,处理服务器端的文件传输,以及在前端创建合适的触发下载的链接。通过这种方式,我们可以为用户提供安全、方便的图片下载体验。

Global site tag (gtag.js) - Google Analytics