.net下载文件方法

1、以文件流下载

       byte[] fileStr=new  byte[5];

            MemoryStream btMs = new MemoryStream(fileStr);

            //以字符流的形式下载文件 

            byte[] bytes = new byte[(int)btMs.Length];
            btMs.Read(bytes, 0, bytes.Length);
            btMs.Close();
            Page.Response.ContentType = "application/octet-stream";
            //通知浏览器下载文件而不是打开
            Page.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8));
            Page.Response.BinaryWrite(bytes);
            Page.Response.Flush();
            Page.Response.End();

2、根据文件路径下载

public void Download(string path)
        {

            string filePath = HttpContext.Current.Server.MapPath(path);//路径

            //以字符流的形式下载文件
            FileStream fs = new FileStream(filePath, FileMode.Open);
            byte[] bytes = new byte[(int)fs.Length];
            fs.Read(bytes, 0, bytes.Length);
            fs.Close();
            HttpContext.Current.Response.ContentType = "application/octet-stream";

            HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode("test", System.Text.Encoding.UTF8));
            HttpContext.Current.Response.BinaryWrite(bytes);
            HttpContext.Current.Response.Flush();
            HttpContext.Current.Response.End();
        }

3.直接下载

WebClient client = new WebClient();

//文件存放路径
var path = HttpContext.Current.Server.MapPath(@"\Static\BtDownload\");

//判断文件是否存在
var file = new FileInfo(path + filename);
if (!file.Exists)
{
 client.DownloadFile(value, path + filename);
}

时间: 2024-10-29 10:48:04

.net下载文件方法的相关文章

Python抓取网页&批量下载文件方法初探(正则表达式+BeautifulSoup) (转)

Python抓取网页&批量下载文件方法初探(正则表达式+BeautifulSoup) 最近两周都在学习Python抓取网页方法,任务是批量下载网站上的文件.对于一个刚刚入门python的人来说,在很多细节上都有需要注意的地方,以下就分享一下我在初学python过程中遇到的问题及解决方法. 一.用Python抓取网页 基本方法: [python] view plaincopyprint? import urllib2,urllib url = 'http://www.baidu.com' req 

.NET两种常见上传下载文件方法

1.FTP模式 代码如下: (1)浏览 /// <summary> /// 浏览文件 /// </summary> /// <param name="tbControl">控件名称</param> private void ViewFile(TextBox tbControl) { OpenFileDialog openFileDialogTemp = new OpenFileDialog();//提示用户打开文件弹窗 //设置文件类型

向云服务器上传下载文件方法汇总(转)

转载于:https://yq.aliyun.com/articles/64700 摘要: 一.向Windows服务器上传下载文件方式 方法有很多种,此处介绍远程桌面的本地资源共享方法. 1.运行mstsc,连接远程桌面的时候,点"选项>>" 2."本地资源"-->详细信息. 3."磁盘驱动器"前面打钩. 一.向Windows服务器上传下载文件方式 方法有很多种,此处介绍远程桌面的本地资源共享方法. 1.运行mstsc,连接远程桌

经验分享] 向云服务器上传下载文件方法汇总

一.向Windows服务器上传下载文件方式 方法有很多种,此处介绍远程桌面的本地资源共享方法. 1.运行mstsc,连接远程桌面的时候,点"选项>>" <ignore_js_op> 2."本地资源"-->详细信息. <ignore_js_op> 3."磁盘驱动器"前面打钩. <ignore_js_op> 4.连接远程电脑后,打开"我的电脑",就能看到刚刚共享的硬盘驱动器.把

页面下载文件方法,post与get

一般下载文件,常见使用的是window.open('url'):方法进行下载.若需要带参数,直接在url后面拼接参数,进行传递.window.open方法仅可以进行get方法进行参数提交. 若需要进行post方法提交,则有点麻烦,经过网上的方法进行参数,最后自己整理出能用的方法: handleExport(){ const url='/api/admin/gateLog/export'; const downloadHelper = $('<iframe style="display:no

前端通过url下载文件方法

产生背景 浏览器通过url下载文件,当浏览器识别出资深能播放的资源文件,就不会走下载流程,会直接打开 解决方法 1.让后台转成请求的方式,输出文件流(如果想实现批量下载-因为浏览器会误判多文件下载是个攻击,可新建iframe通过src实现批量下载) 2.a标签, h5的download,仅仅限制当前域名下的文件下载,不同域名之下的,不会走下载,会直接打开浏览器能自动识别的资源文件 3.通过下面前端看似狗屎的代码解决 // 保存到本地并自动点击 function saveAs(data, name

HTML无刷新下载文件方法总汇

首先要保证有一个后台可以下载文件的方法,这里只总结前端解决方法,所以不对后台做分析,假设现在有一个下载文件的方法/project/download.action.如果不想通过后台直接下载可以看我的另一篇文章<html使用a标签不通过后台实现直接下载>. 使用a标签 <a href="/project/download.action" target="_blank">点击下载</a> 这里target属性不给也可以,但是页面会闪一下

由windows向linux上传下载文件方法

1.scp方式 如果可能的话使用scp  比如win端已经安装了Gow等, scp [email protected]:/home/god/LICENCE C:/  下载文件夹加上 -r 2.pscp方式 在putty安装目录下,存在可执行文件pscp.exe,用法跟scp命令相似, win+R 输入 cmd进入命令行, 比如要将本地的LICENCE文件上传到远程计算机192.168.1.105的home/god中,远程主机登陆账号为god,命令如下: pscp   LICENCE    [em

asp.net mvc5 下载文件方法

控制器自带的 FileContentResult 可以让我们很方便的返回文件到服务端,减少了很多步骤.用于下载文件的时候,像视频.文本.图片这种浏览器支持的文件,默认就会被浏览器打开.这时候想让它变成下载,还需要设置一下响应头,告诉浏览器如何处理才行. public ActionResult DownLoadFile(String path, string fileName, string contentType) { Response.AddHeader("Content-Dispositio