海外邮件中继,海外退信中继,美国高速VPS,不限流量VPN,邮局维护和管理,邮件网关,EMOS邮件中继,POSTFIX邮件中继,Winwebmail邮件中继,Winmail邮件中继,DBMail邮件中继,JDMail邮件中继,Exchange邮件中继,MDaemon邮件中继  淘宝店:http://shantan.taobao.com     云邮科技官网:www.yunrelay.com
【字体设置:大 中 小】
关于下载路径的隐藏都是通过传递一个数据库中的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 
%>
        
	  
           
         发表评论 - 不要忘了输入验证码哦! 
        

 用户登陆
 站点日历
 站点统计
 最新评论
 日志搜索
 ASP和C#隐藏文件下载路径   [ 日期:2010-01-23 18:01:56 ]   [ 来自: