为了账号安全,请及时绑定邮箱和手机立即绑定

c# 流的方式下载文件

/ 猿问

c# 流的方式下载文件

付小小_Helen 2018-07-25 05:06:12

因为下载的同时要更新数据库的信息,所以直接写在超链接里就不行了.

用window.openIE有的 版本还不支持.

后来想到用一个aspx页面后台处理下载,

用流的方式,但有一个问题是 要下载的文件和网站不在同一机器.地址是类似http://...../a.zip

这样的话,FileStream似乎不支持网络路径.

代码如下:

  string fileName = strName;//客户端保存的文件名
        string filePath = "http://.....//a.zip";//路径 
        //以字符流的形式下载文件
        FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate,FileAccess.Write);
        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();

怎么办,有什么好办法.


查看完整描述

2 回答

?
慕少森

用WebClient访问 http://...../a.zip

查看完整回答
反对 回复 2018-07-30
?
慕村225694

很好解决啊:在前台加个

<form id="attachmentForm" method="POST">

</form>

然后这样:

$('#attachmentForm').attr('action', '/AjaxTerminalInfo/DownloadAttachment.cspx?filepath=' + row[i].FilePath + "&filename=" + row[i].FileName);
$('#attachmentForm').submit();


查看完整回答
反对 回复 2018-07-30
  • 2 回答
  • 0 关注
  • 1289 浏览
我要回答

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信