c#文件下载示例的4种方法分享

c#文件下载示例的4种方法分享,第1张

概述复制代码代码如下:usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebPar

复制代码 代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HTMLControls;
using System.IO;
public partial class _Default : System.Web.UI.Page
{
protected voID Page_Load(object sender,EventArgs e)
{
}
//Transmitfile实现下载
protected voID button1_Click(object sender,EventArgs e)
{
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)
{
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,Convert.ToInt32(ChunkSize));//读取的大小
Response.OutputStream.Write(buffer,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,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();
}
}

总结

以上是内存溢出为你收集整理的c#文件下载示例的4种方法分享全部内容,希望文章能够帮你解决c#文件下载示例的4种方法分享所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1261904.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存