惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Cisco Blogs
Schneier on Security
Schneier on Security
T
Tor Project blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Tenable Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Threat Research - Cisco Blogs
C
CERT Recently Published Vulnerability Notes
Security Latest
Security Latest
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
NISL@THU
NISL@THU
L
Lohrmann on Cybersecurity
Scott Helme
Scott Helme
Webroot Blog
Webroot Blog
Project Zero
Project Zero
Google Online Security Blog
Google Online Security Blog
The Last Watchdog
The Last Watchdog
Spread Privacy
Spread Privacy
Hacker News: Ask HN
Hacker News: Ask HN
PCI Perspectives
PCI Perspectives
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
W
WeLiveSecurity
Attack and Defense Labs
Attack and Defense Labs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
N
News | PayPal Newsroom
Help Net Security
Help Net Security
The Hacker News
The Hacker News
H
Heimdal Security Blog
O
OpenAI News
S
Security @ Cisco Blogs
N
News and Events Feed by Topic
Cyberwarzone
Cyberwarzone
Simon Willison's Weblog
Simon Willison's Weblog
G
GRAHAM CLULEY
www.infosecurity-magazine.com
www.infosecurity-magazine.com
博客园 - 叶小钗
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Hacker News - Newest:
Hacker News - Newest: "LLM"
T
Tailwind CSS Blog
大猫的无限游戏
大猫的无限游戏
A
Arctic Wolf
I
Intezer
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
S
Security Affairs
P
Proofpoint News Feed
S
Secure Thoughts
腾讯CDC
Google DeepMind News
Google DeepMind News
量子位
罗磊的独立博客

博客园 - 9527的晃悠人生

(转)使用Visual Studio.net调试javascript最方便的方法 jsoho.com介绍 测试 学习计划 简单权限验证的方法 用log4net快速构建asp.net 异常日志 查找某些记录中重复的记录 竞猜系统设计文档 足球联赛竞猜管理 遍厉目录下文件和子目录 用C#实现将html文件转换为chm文件 调试断点的条件设置 Asp.net 中 页面无刷新的做法 内容服务中的大文本处理。 关于Asp的性能优化 Insert 一个字段类型是自动增量的,又要写入变量 第三方的数据控件、分页控件 关于网络文学站的相关事宜 利用PD进行数据库建模
自定义下载文件名
9527的晃悠人生 · 2004-06-16 · via 博客园 - 9527的晃悠人生

无知者无畏,今天遇到一个问题,需要自定义下载文件名,以前在asp中写过,马上把原来代码翻出来了
<%
Dim Stream
Dim Contents
Dim FileName
Dim FileExt
Const adTypeBinary = 1
FileName = Request.QueryString("FileName")
'response.write FileName& request("filetitle")
'response.end
if FileName = "" Then
    Response.Write "无效文件名."
    Response.End
End if
' 下面是不希望下载的文件
FileExt = Mid(FileName, InStrRev(FileName, ".") + 1)
Select Case UCase(FileExt)
    Case "ASP", "ASA", "ASPX", "ASAX", "MDB"
        Response.Write "受保护文件,不能下载."
        Response.End
End Select
' 下载这个文件
'Response.Clear
Response.ContentType = "application/octet-stream"
Response.AddHeader "content-disposition", "attachment; filename=" & request("filetitle")
Set Stream = server.CreateObject("ADODB.Stream")
Stream.Type = adTypeBinary
Stream.Open
Stream.LoadFromFile Server.MapPath(FileName)
While Not Stream.EOS
    Response.BinaryWrite Stream.Read(1024 * 64)
Wend
Stream.Close
Set Stream = Nothing
Response.Flush
Response.End
%>


这样可以防止别人看到文件下载的物理路径,同时也可部分的实现安全下载,在c#里也改了一下
/// <summary>
/// 下载文件
/// </summary>
/// <param name="userID">用户ID号</param>
/// <param name="fileName">要下载的文件名</param>
/// <returns>成功与否</returns>
public static ReturnInfo DownloadFile(string userID,string fileName)
{
 if(fileName.Length<4)
  return new ReturnInfo(0,new Exception("文件名错误!"));
 System.Web.HttpResponse Response = System.Web.HttpContext.Current.Response;
 System.Web.HttpServerUtility Server = System.Web.HttpContext.Current.Server;
 string filePath = Server.MapPath("UserSpace")+"/"+userID+"/"+fileName+".aspx";
 FileInfo file = new FileInfo(filePath);
 if(!file.Exists)
  return new ReturnInfo(0,new Exception("没有找到要下载的文件!"));
 Response.Clear();
 Response.AddHeader("Content-disposition","attachment;filename="+fileName.Replace(".aspx",""));
 Response.AddHeader("Content-length",file.Length.ToString());
 Response.ContentType = "application/octet-stream";
 Response.WriteFile(file.FullName);
 Response.End();

 return new ReturnInfo(true);
}