广

ASP编程

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    ASP和C#隐藏文件下载路径的方法

    2018-04-25 21:46:18 次阅读 稿源:互联网
    零七广告

      关于下载路径的隐藏都是通过传递一个数据库中的ID,然后在另外一张页面通过传递的ID在数据库中读出路径。
      1、c#中实现的方法(只需要.ASPX.CS的代码就可以了)
      string sel_sql="select FileVisualPath from TabMailAttachFiles where FileID="+Request.QueryString["destFileName"].ToString();

      //   string destFileName = Request.QueryString["destFileName"]!=null?Request.QueryString["destFileName"]:"";
         string destFileName=ROA.Components.fune_commerce.Execad(sel_sql).Tables[0].Rows[0][0].ToString();
         destFileName = Server.MapPath(".")+destFileName;
         destFileName = Server.UrlDecode(destFileName);
         if(File.Exists(destFileName))
         {
          FileInfo fi = new FileInfo(destFileName);
          Response.Clear();
          Response.ClearHeaders();
          Response.Buffer = false;
         
          //Response.AppendHeader("Content-Disposition","attachment;filename=" +HttpUtility.UrlEncode(Path.GetFileName(destFileName),System.Text.Encoding.Default));
          Response.AppendHeader("Content-Disposition","attachment;filename=" +HttpUtility.UrlEncode(Path.GetFileName(destFileName),System.Text.Encoding.UTF8));
          Response.AppendHeader("Content-Length",fi.Length.ToString());
          Response.ContentType="application/octet-stream";
          Response.WriteFile(destFileName);
          Response.Flush();
          Response.End();
         }
         else
         {
          Response.Write("<script langauge=javascript>alert('文件不存在!');history.go(-1);</script>");
          Response.End();
         }
      2、在ASP中的实现方法
      <!--#include file="conn.asp" -->
      <%
      Response.Buffer = true
      Response.Clear
      dim url
      Dim fso,fl,flsize
      dim Dname
      Dim objStream,ContentType,flName,isre,url1
      '*********************************************调用时传入的下载文件名
      m_ID=trim(request.QueryString("ID"))
      set rs=Server.CreateObject("adodb.recordset")
      sql="select * from dataview where xsf=true and id="&m_ID
      rs.open sql,conn,1,1
      if not rs.eof then
          Dname=rs("path")
      else
          Response.Write("no found")
          Response.end
      end if
      rs.close:set rs=nothing
      '******************************************************************
      If Dname<>"" Then
      '******************************下载文件存放的服务端目录
      url=Server.MapPath(Dname)
      else
          Response.Write("no found")
          Response.end 
      End If
      Set fso=Server.CreateObject("Scripting.FileSystemObject")
      Set fl=fso.getfile(url)
      flsize=fl.size
      flName=fl.name
      Set fl=Nothing
      Set fso=Nothing
      Set objStream = Server.CreateObject("ADODB.Stream")
      objStream.Open
      objStream.Type = 1
      objStream.LoadFromFile url
      Select Case lcase(Right(flName, 4))
      Case ".asf"
      ContentType = "video/x-ms-asf"
      Case ".avi"
      ContentType = "video/avi"
      Case ".doc"
      ContentType = "application/msword"
      Case ".zip"
      ContentType = "application/zip"
      Case ".xls"
      ContentType = "application/vnd.ms-excel"
      Case ".gif"
      ContentType = "image/gif"
      Case ".jpg", "jpeg"
      ContentType = "image/jpeg"
      Case ".bmp"
      ContentType = "image/bmp"
      Case ".ppt"
      ContentType = "application/vnd.ms-powerpoint"
      Case ".mdb"
      ContentType = "application/x-msaccess"
      Case ".wav"
      ContentType = "audio/wav"
      Case ".mp3"
      ContentType = "audio/mpeg3"
      Case ".mpg", "mpeg"
      ContentType = "video/mpeg"
      Case ".rtf"
      ContentType = "application/rtf"
      Case ".htm", "html"
      ContentType = "text/html"
      Case ".txt"
      ContentType = "text/plain"
      Case Else
      ContentType = "application/octet-stream"
      End Select
      Response.AddHeader "Content-Disposition", "attachment; filename=" & flName
      Response.AddHeader "Content-Length", flsize
      Response.Charset = "UTF-8"
      Response.ContentType = ContentType
      Response.BinaryWrite objStream.Read
      Response.Flush
      response.Clear()
      objStream.Close
      Set objStream = Nothing
      %>

       

      出处:『 漂失在蓝天下的云 』 BLOG
      

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告