public void DownloadFile(string fileId)
{
//Stream fileStream = null;
try
{
int fileID = Convert.ToInt32(fileId);
string RelatePath = fileInfoBLL.GetRelatePath(fileID);
string fileFullPath = filePath + "\\" + RelatePath;
string fileName = fileInfoBLL.GetFileName(fileID);
var response = HttpContext.Current.Response;
response.Clear();
response.Buffer = true;
//fileName = System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.GetEncoding("UTF-8"));
response.AppendHeader("Content-Disposition", "attachment;filename=" + fileName);
response.ContentEncoding = System.Text.Encoding.UTF8;
response.Charset = "UTF-8";
response.WriteFile(fileFullPath);
}
catch (Exception ex)
{
ExceptionHandler.ExceptionHelper.Instance.HandleException(ex);
}
}

将字符串转换成指定编码格式:

   string fileName = System.Web.HttpUtility.UrlEncode("要转换的字符串", System.Text.Encoding.GetEncoding("UTF-8"));

2    string gbStr =  System.Text.Encoding.GetEncoding("gb2312").GetString(System.Text.Encoding.Default.GetBytes('xxx'));

另一种:

  private void DownloadFile(string fileName, string filePath)
{
try
{
if (!string.IsNullOrEmpty(filePath))
{
if (string.IsNullOrEmpty(fileName))
{
fileName = filePath.Substring(filePath.LastIndexOf("\\") + );
} context.Response.Clear();
context.Response.Buffer = true;
context.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlPathEncode(fileName));
context.Response.ContentEncoding = System.Text.Encoding.UTF8;
context.Response.Charset = "UTF-8";
//context.Response.ContentType = "application/vnd.ms-excel";
context.Response.WriteFile(UploadFileSavePath + "\\" + filePath);
}
}
catch (Exception ex)
{
ExceptionHelper.Instance.HandleException(ex);
context.Response.Write("{\"bizSuccess\":false,\"msg\":\"下载文件时发生错误!\"}");
} context.Response.Flush();
context.Response.End();
}

利用WebOperationContext.Current.OutgoingResponse下载

public Stream DownloadFile(string token)
{
Stream fileStream = null;
try
{
//FilesInfo filesInfo = m_FileDAL.Find<FilesInfo>(fileId);
//string fileFullPath = filesInfo.FileUrl + filesInfo.FileName;
//string fileFullPath = m_FileDAL.Find<FilesInfo>(fileId).FileUrl;
//string fileFullPath = @"C:\Users\chen\Desktop\reader.txt";
string fileFullPath = @"C:\Users\chen\Desktop\HSF第四次读后感.docx";
//string fileName = "reader.txt";
string fileName = "HSF第四次读后感.docx";
fileStream = File.OpenRead(fileFullPath);
var response = WebOperationContext.Current.OutgoingResponse;
response.Headers.Add("Content-Disposition", "attachment;filename=" + HttpUtility.UrlPathEncode(fileName));
response.ContentType = "application/octet-stream";
//var message = WebOperationContext.Current.CreateStreamResponse(fileStream, "application/octet-stream");
//message.Headers.Add(System.ServiceModel.Channels.MessageHeader.CreateHeader("Content-Disposition", "", "attachment;filename=" + HttpUtility.UrlPathEncode(fileName)));
//response.Clear();
//response.Buffer = true;
//response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlPathEncode(fileName));
//response.ContentEncoding = System.Text.Encoding.UTF8;
//response.Charset = "UTF-8"; //result.Success = true;
//result.ErrorMessage = string.Format("{0}下载成功!", fileId);
//result.Data = fileStream;
}
catch (Exception ex)
{ //result.Success = false;
//result.ErrorMessage = string.Format("{0}下载失败!", fileId);
//result.Data = null;
} return fileStream;
}

Rest文件下载的更多相关文章

  1. Android 浏览器 —— 使用 WebView 实现文件下载

    对当前的WebView设置下载监听 mCurrentWebView.setDownloadListener(new DownloadListener() { @Override public void ...

  2. C# 文件下载 : WinINet

    在 C# 中,除了 WebClient 我们还可以使用一组 WindowsAPI 来完成下载任务.这就是 Windows Internet,简称 WinINet.本文通过一个 demo 来介绍 Win ...

  3. ASP.net MVC 文件下载的几种方法(欢迎讨论)

    在ASP.net MVC 中有几种下载文件的方法 前提:要下载的文件必须是在服务器目录中的,至于不在web项目server目录中的文件下载我不知道,但是还挺想了解的. 第一种:最简单的超链接方法,&l ...

  4. 让IIS7.0.0.0支持 .iso .7z .torrent .apk等文件下载的设置方法

    IIS默认支持哪些MIME类型呢,我们可以这样查看:打开IIS管理器(计算机--管理--服务和应用程序--Internet信息服务(IIS)管理器:或者Win+R,输入inetmgr,Enter),在 ...

  5. Android中使用AsyncTask实现文件下载以及进度更新提示

    Android提供了一个工具类:AsyncTask,它使创建需要与用户界面交互的长时间运行的任务变得更简单.相对Handler来说AsyncTask更轻量级一些,适用于简单的异步处理,不需要借助线程和 ...

  6. 利用Tomcat内置的servlet实现文件下载功能

    起因 最近博客所在的VPS挂了又要重装系统,又要重装各种软件. 以前我也经常更换VPS,每次更换都是各种坑爹事情..比如要下载java.下载tomcat.下载mysql..........以前每次我都 ...

  7. 多个文件下载打包生成zip格式下载

    这个多个文件下载生成zip格式必须先引用一个ICSharpCode.SharpZipLib.dll. 代码如下  //将多个文件打包成压缩文件zip格式下载         protected voi ...

  8. .net一般处理程序(httphandler)实现文件下载功能

    Handler文件代码如下: public class MDMExporterWeb : IHttpHandler { public void ProcessRequest(HttpContext c ...

  9. asp.net 文件下载(txt,rar,pdf,word,excel,ppt)

    aspx 文件下载说起来一点都不难,但是在做的过程中还是遇到了一些小小的问题,就是因为这些小小的问题,导致解决起来实在是太难了,其中一个就是Response.End();导致下载文件出现线程终止的情况 ...

  10. JavaScript多文件下载

    对于文件的下载,可以说是一个十分常见的话题,前端的很多项目中都会有这样的需求,比如 highChart 统计图的导出,在线图片编辑中的图片保存,在线代码编辑的代码导出等等.而很多时候,我们只给了一个链 ...

随机推荐

  1. jquery ajax请求方式与提示用户正在处理请稍等,等待数据返回时loading的显示

    1.jquery ajax请求方式与提示用户正在处理请稍等 为了提高用户体验度,我们通常会给出 “正在处理,请稍等!”诸如此类的提示.我们可通过设置$.ajax()下的参数beforeSend()来实 ...

  2. 大作业关于(“有爱”youi)的简介

    我们团队一共四个人,我们足够了解对方的优缺点,能够很好的进行交流沟通.对于一些问题也能有好的方法去解决,我做事情比较讲究高效和尽可能的完美,或者说要做到我自己觉得完美,才会停下来.对于一件事情,我有自 ...

  3. vs2016 vsto excel addin deploy error: vsto 无法解析属性type的值

    https://social.msdn.microsoft.com/Forums/vstudio/en-US/ea33e391-21d7-4f54-92cb-c7af72f19c61/outlook- ...

  4. 使用MediaRecorder录制音频

    手机一般都提供了麦克风硬件,而Android系统就可以利用该硬件来录制音频了. 为了在Android应用中录制音频,Android提供了MediaRecorder类,使用MediaRecorder录制 ...

  5. 如何在Hadoop的MapReduce程序中处理JSON文件

    简介: 最近在写MapReduce程序处理日志时,需要解析JSON配置文件,简化Java程序和处理逻辑.但是Hadoop本身似乎没有内置对JSON文件的解析功能,我们不得不求助于第三方JSON工具包. ...

  6. 把Angular中的$http变成jQuery.ajax()一样,可以让后台(php)轻松接收到参数

    最近接到一个手机项目,我决定用ionic + php + mysql来实现.ionic是一个前端框架,主要用于手机端,它融合了html5.css3.angularJS于一体,用起来很顺手. 开始构建项 ...

  7. DQL查询语句内容整理

    select * from t_hq_ryxx; select bianh,xingm from t_hq_ryxx; --为字段名定义别名 select bianh as 编号,xingm as 姓 ...

  8. zabbix3.0部署(LAMP)

    0.1 初始化 #!/bin/sh yum clean all systemctl stop firewalld.service systemctl disable firewalld.service ...

  9. mac下安装apache+php+mysql

    运行“sudo apachectl start”,再输入帐号密码,这样Apache就运行了. 运行“sudo apachectl -v”,你会看到Mac OS X 10.6.3中的Apache版本号: ...

  10. Spring依赖关系

    在Spring中,各个模块的依赖关系通过简单的IoC配置文件进行描述,使这些外部化的信息集中并且明了,我们在使用其他组件服务时,只需要去配置文件中了解和配置这些依赖关系即可,也就是说这里关心的是接口, ...