.net下载文件的几种方式

news/2024/10/23 3:40:32/
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();
} 


http://www.ppmy.cn/news/253353.html

相关文章

Ubuntu18.04下常用软件的安装

视频播放器 Ubuntu下自带的软件播放器并不好用,不像Windows那样自带的还凑合还能用。所以,有必要安装一个好用的视频播放器。 sudo apt-add-repository ppa:rvm/smplayer sudo apt update sudo apt install smplayer smplayer-skins smplayer-themes如果是Ubuntu16.04及以下…

TOMCAT 下载与安装

官网选择安装包 https://tomcat.apache.org/download-70.cgi?Preferredhttp%3A%2F%2Fmirror.bit.edu.cn%2Fapache%2F选择合适的镜像在需要的包上右键复制链接LINUX中通过 wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.96/bin/apache-tomcat-7.0.96.tar.gz解压 …

下载与安装HCL

HCL是H3C目前官方唯一出品的模拟器,整个产品的界面设计和性能比行业的其他H3C模拟器都要强大。华三云实验室(H3C Cloud Lab,简称HCL)是一款界面图形化的全真网络模拟软件,用户可以通过该软件实现H3C公司多个型号的虚拟…

iterm2下载以及使用

最近mac自带的terminal 老是抽风崩溃不知道又给我的电脑更新了什么新的bug进去。 索性使用一下好评度较高的iterm2来替代它的工作,首先下载iterm: brew cask install iterm2 很简单的下载完成。。。。 但是我又喜欢terminal的透明背景怎么办&#xff0…

Openmpi 安装教程 并行 openmpi-4.0.0

1、将openmpi源码包导入/opt/software目录(可以选择你自己常用的目录导入) 2、解压Openmpi源码包 tar -xvf openmpi-4.0.0.tar.gz 3、安装OpenMPI、进入源码根目录,运行配置文件,开始安装: cd openmpi-4.0.0/ ./confi…

深度linux系统live版,【Deepin linux下载】Deepin Linux官方下载 v20 最新免费版(ios+Live)-开心电玩...

Deepin linux20介绍 Deepin linux20原名为Hiweed Linux,是一款在在ubuntu基础上开发的开源的免费的linux操作系统,支持笔记本、桌面计算机和一体机使用。Deepin linux20是目前的最新版本,采用全面的高清配置,支持WiFi热点支持,新增指纹解锁功能,还能自动调节颜色,保护双…

mysql下载和安装详细教程

参考链接: https://blog.csdn.net/zhujialiang18/article/details/79780131 https://www.jb51.net/article/158587.htm 下载安装包链接: 一.MySQL的下载与安装 1.下载MySQL:https://dev.mysql.com/downloads/(官网)&a…

Python(含PyCharm及配置)下载安装以及简单使用(Idea)

写在前面 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家:人工智能学习网站 下载 Python官网下载地址:Python下载 不同参数解释,小伙伴们根据自己情况进行下载即可(此处博主用的是3.7.3版本): –web-base…