asp.net实现下载
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/z.zip");
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();
}
//----------------------------------------------------------
public void 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();
}
//上面这段代码是下载一个动态产生的文本文件,若这个文件已经存在于服务器端的实体路径,则可以通过下面的函数:
public void 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.ReadAllBytes(FilePath));//---------
WebForm.Response.End();
}
asp.net实现下载相关推荐
- 黑鹰ASP教程(全部)下载
黑鹰ASP教程(全部)下载 [url]http://down.dzfly.com/hacker/3800/asp/lesson1.rar[/url] [url]http://down.dzfly.co ...
- 解析:如何在 ASP.NET 中下载文件
解析:如何在 ASP.NET 中下载文件 来源:博客园 作者:dotnetWalker 这是笔者常被问到的一个问题,如何通过ASP.NET来下载文件,这个问题可大可小,我们先从小的开始.当我们要让用户 ...
- 分享66个ASP上传下载源码,总有一款适合您
分享66个ASP上传下载源码,总有一款适合您 66个ASP上传下载源码下载链接:https://pan.baidu.com/s/1AAZA99BVNOFtVFIjnYl4XA?pwd=vyqa 提取 ...
- asp.net 探针下载_光探针代理卷:5.4功能展示
asp.net 探针下载 Unity 5.4已进入测试版,并且出色的功能是Light Probe Proxy Volume(LPPV). 我只是想与您分享所有内容,工作流程和一些小实验以展示其实际效果 ...
- 如何在 ASP.NET 中下载文件
这是笔者常被问到的一个问题,如何通过ASP.NET来下载文件,这个问题可大可小,我们先从小的开始.当我们要让用户下载一个文件,最简单的方式是通过Response.Redirect指令: 殇﹖ ☆粉汐げ ...
- 分享111个ASP上传下载源码,总有一款适合您
分享111个ASP上传下载源码,总有一款适合您 111个ASP上传下载源码下载链接:https://pan.baidu.com/s/1VaiX2JZqyBue8g_x7bsrZA?pwd=szji ...
- 分享116个ASP上传下载源码,总有一款适合您
分享116个ASP上传下载源码,总有一款适合您 116个ASP上传下载源码下载链接:https://pan.baidu.com/s/1loHIyl9LUAkyPBedFpkRQw?pwd=fflw ...
- ASP实现隐藏下载地址和防盗
以下为引用的内容: <% FunctIon DownloadFIle(StrFIle) StrFIlename=StrFIle Response.Buffer=True Response.Cle ...
- 第十八天:WEB攻防-ASP安全MDB下载植入IIS短文件名写权限解析
Windows 2003(操作系统) + IIS(中间件)+Asp(源码脚本语言)+Access(数据库) Windows 2003(操作系统)网上有教程 建站 建站完毕后,在xss这块儿点击属性,然 ...
最新文章
- 获取两个数百分比的值
- 4g模块注册上网 移远_Openwrt实现4G模块上网功能
- 初学者可能不知道的 vue.js技巧
- 数组去重的各种方法速度对比
- 作为程序员之正则表达式
- string对象和C风格字符串
- VS调试启动编辑并继续功能
- 软件_搭建rtmp视频推送环境,腾讯云,ubuntu16
- php m.baidu.com,http://m.baidu.com/baidu.php?u
- Leetcode 24——Swap Nodes in Pairs
- meta refresh 刷新
- 吴恩达机器学习正则化线性回归和偏差算法的MATLAB实现(对应ex5练习)
- 谷歌pagerank算法(谷歌搜索引擎的pagerank算法的原理)
- java合并图片合成多张横向或竖向
- 实验吧CTF天网管理系统
- 微信小程序----第二天(小程序 - 模板与配置)
- 驱动学习笔记 IRP
- apollo新增扩展consul注册中心
- 等保测评 安全计算坏境之linux操作系统
- iphone同步android短信恢复,android上的短信怎么恢复到iphone