zoukankan      html  css  js  c++  java
  • Rest文件下载

     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);
                }
            }

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

    1   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'));

    另一种:

     1  private void DownloadFile(string fileName, string filePath)
     2         {
     3             try
     4             {
     5                 if (!string.IsNullOrEmpty(filePath))
     6                 {
     7                     if (string.IsNullOrEmpty(fileName))
     8                     {
     9                         fileName = filePath.Substring(filePath.LastIndexOf("\") + 1);
    10                     }
    11 
    12                     context.Response.Clear();
    13                     context.Response.Buffer = true;
    14                     context.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlPathEncode(fileName));
    15                     context.Response.ContentEncoding = System.Text.Encoding.UTF8;
    16                     context.Response.Charset = "UTF-8";
    17                     //context.Response.ContentType = "application/vnd.ms-excel";
    18                     context.Response.WriteFile(UploadFileSavePath + "\" + filePath);
    19                 }
    20             }
    21             catch (Exception ex)
    22             {
    23                 ExceptionHelper.Instance.HandleException(ex);
    24                 context.Response.Write("{"bizSuccess":false,"msg":"下载文件时发生错误!"}");
    25             }
    26 
    27             context.Response.Flush();
    28             context.Response.End();
    29         }

     利用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:UserschenDesktop
    eader.txt";
                    string fileFullPath = @"C:UserschenDesktopHSF第四次读后感.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;
            }
  • 相关阅读:
    通过python连接数据库以及操作
    切片
    文件的内容读写(二)
    文件的内容读写(一)
    python数据类型(四)之嵌套类型
    python数据类型(三)之字典类型
    python数据类型(二)之数组和数组函数
    Python的内存管理
    *args 和 **kwargs 的区别
    python的命名空间
  • 原文地址:https://www.cnblogs.com/lihongchen/p/3699153.html
Copyright © 2011-2022 走看看