C#根据path文件地址进行下载

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#根据path文件地址进行下载相关的知识,希望对你有一定的参考价值。

1:在js文件中写入加密方法

var Comm = {
    encode: function (text) {
        if (text)
            return new Base64().encode(text);
        else
            return text;
    }

}

2:Handler类中返回文件地址:

 如:string path = "/Files/审理意见书.doc";

3:在js方法中接收并跳转页面进行下载

function Download(){
      $.post(‘ ‘,{action:‘ ‘},function(data){

    if(path!=""){

      window.location.href="/Download.aspx?P="+Comm.encode(path);

    }

  });
   }

4:在Download.aspx也进行后台代码操作

    a:首先写入解密方法

 public  static string Decrypt(string text) {

  byte[] bytes = Convert.FromBase64String(text);

  return Encoding.UTF8.GetString(bytes);

 }

    b:进行文件解析以及下载操作

 protected void Page_Load(object sender, EventArgs e) {

     string path = Decrypt(Parse.ToString(Request["p"]).Replace(" ", "+"));

     string fileName = path.Substring(path.LastIndexOf(‘/‘) + 1);

     var filePath = HttpContext.Current.Server.MapPath(path);

     try {

        //判断是否存在此文件

        if (File.Exists(filePath)) {

          FileStream io = File.Open(filePath, FileMode.Open);

          long fileSize = io.Length;
                       byte[] filebit = new byte[(int) fileSize];
                         io.Read(filebit, 0, (int) fileSize);
                       Response.Clear();
                       fileName = HttpUtility.UrlEncode(fileName);
                       Response.ContentType = "application/octet-stream";
                       Response.AddHeader("Content-Disposition", "attachment;fileName=" + fileName);
                       Response.BinaryWrite(filebit);
                       io.Dispose();
                       Response.Flush();
                       Response.End();

        } else {
                        Response.Clear();
                        Response.Write("<script type=\"text/javascript\" src=\"/Scripts/jquery-1.10.2.js\"></script><script>$(function () {alert(‘文件不存在或已被删除‘, { icon: 0 }, function () { window.close(); }, function () { window.close(); });});</script>");
                }

     }catch (Exception ex) {
                Response.Clear();
                Response.Write("<script type=\"text/javascript\" src=\"/Scripts/jquery-1.10.2.js\"></script> <script>$(function () {alert(‘" + ex.Message + "‘, { icon: 0 }, function () { window.close(); }, function () { window.close(); });});</script>");
            }

  }

 

以上是关于C#根据path文件地址进行下载的主要内容,如果未能解决你的问题,请参考以下文章

C# winform 如何根据URL直接下载网页保存在本地?

文件下载

https 协议下服务器根据网络地址下载上传文件问题

初步进行vs单元测试

github环境搭建

C# Redis实战