网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.ISAPI Rewrite的安装与使用.
.如何在网页中存取剪贴板中的内容.
.为ASP开发者介绍ColdFusion.
.让ASP程序运行于非Windows平台.
.在ASP/ASP.NET 中处理客户端数字.
.ASP防SQL注入攻击程序.
.如何用ASP创建日志文件.
.ASP安全检测与过滤函数SafeCheck.
.改善ASP性能和外观的技巧集锦(上.
.解决ASP执行DB查询中的特殊字符问.
.用ASP语言实现对SQL SERVER 数据.
.ASP技术在论坛中的运用(四)(吐血.
.ASP中轻松实现变量名-值变换.
.纯猝使用VBScript来实现加密.
.表单递交内容检测脚本-这里只接受.
.ASP 中健壮的页结构的异常处理.
.ASPEMAIL通过Mdaemon的SMTP发信-.
.改善ASP性能和外观的技巧集锦(下.
.ASP实现OICQ式的信息收发功能.
.asp+中是如何连接数据库ado+的.

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

发表日期:2006-4-4


关于下载路径的隐藏都是通过传递一个数据库中的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

上一篇:正则表达式结合数组提取文章中的文件名 人气:8286
下一篇:用.net开发asp组件 人气:11042
浏览全部ASP的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐