C#根据流下载文件

IT技术2年前 (2022)发布 投稿用户
0

C#从服务器下载文件能够运用下面4个办法:TransmitFile、WriteFile、WriteFile和流办法下载文件,并保存为相应类型,办法如下:1、TransmitFile完成下载protectedvoidButton1_Click(objectsender,EventArgse)

{/*微软为Response目标供给了一个新的办法TransmitFile来处理运用Response.BinaryWrite
下载超越400mb的文件时导致Aspnet_wp.exe进程收回而无法成功下载的问题。
代码如下:*/Response.ContentType=”application/x-zip-compressed”;
Response.AddHeader(“Content-Disposition”,”attachment;filename=z.zip”);stringfilename=Server.MapPath(“DownLoad/z.zip”);
Response.TransmitFile(filename);

C#


}2、WriteFile完成下载protectedvoidButton2_Click(objectsender,EventArgse)
{/*usingSystem.IO;*/stringfileName=”asd.txt”;//客户端保存的文件名stringfilePath=Server.MapPath(“DownLoad/aaa.txt”);//途径FileInfofileInfo=newFileInfo(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();
}3、WriteFile分块下载protectedvoidButton3_Click(objectsender,EventArgse)
{stringfileName=”aaa.txt”;//客户端保存的文件名stringfilePath=Server.MapPath(“DownLoad/aaa.txt”);//途径System.IO.FileInfofileInfo=newSystem.IO.FileInfo(filePath);if(fileInfo.Exists==true)
{constlongChunkSize=102400;//100K每次读取文件,只读取100K,这样能够缓解服务器的压力byte[]buffer=newbyte[ChunkSize];
Response.Clear();
System.IO.FileStreamiStream=System.IO.File.OpenRead(filePath);longdataLengthToRead=iStream.Length;//获取下载的文件总巨细Response.ContentType=”application/octet-stream”;
Response.AddHeader(“Content-Disposition”,”attachment;filename=”+HttpUtility.UrlEncode(fileName));while(dataLengthToRead>0&&Response.IsClientConnected)
{intlengthRead=iStream.Read(buffer,0,Convert.ToInt32(ChunkSize));//读取的巨细Response.OutputStream.Write(buffer,0,lengthRead);
Response.Flush();
dataLengthToRead=dataLengthToRead-lengthRead;
}
Response.Close();
}
}4、流办法下载protectedvoidButton4_Click(objectsender,EventArgse)
{stringfileName=”aaa.txt”;//客户端保存的文件名stringfilePath=Server.MapPath(“DownLoad/aaa.txt”);//途径//以字符流的形式下载文件FileStreamfs=newFileStream(filePath,FileMode.Open);byte[]bytes=newbyte[(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();
}

© 版权声明
好牛新坐标 广告
版权声明:
1、IT大王遵守相关法律法规,由于本站资源全部来源于网络程序/投稿,故资源量太大无法一一准确核实资源侵权的真实性;
2、出于传递信息之目的,故IT大王可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
3、因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
4、无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式
《要求删除或断开链接侵权网络内容的通知》:https://itdw.cn/ziliao/sfgs.pdf,
国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明: http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
未按照国家知识产权局格式通知一律不予处理;请按照此通知格式填写发至本站的邮箱 wl6@163.com

相关文章