用ASP实现文件下载
<%
'**************************************************************
'**使用方法: **
'**在点击下载处加连接<a href="load.asp?filename=文件名"></a> **
'**阳光白雪——2005年11月21日 **
'**E-mail:chenmanyi0818@126.com **
'**HomePage:http://www.toumh.com; **
'**************************************************************
'**************************************************
'** 实现文件下载函数 **
'**************************************************
Function Filedownload(filename)
Dim strchar,fliesend,objectFile,objfile,objStream,path,pathtype
pathtype = "application/x-msdownload"
path = server.MapPath(filename)
Const loadfilesize=32768 '32KB,也可取其它值,单位:字节
'在给path赋值后,其最终值必定是该图片在服务器端存储器上的绝对路径,如 C:\Inetpub\wwwroot\pic\help.gif
'因为 server.MapPath 取得的只是站点根目录的路径,所以在后面还应加上文件所在的文件夹再加文件名
'例如:要下载的文件 setup.exe 在根目录的 download 文件夹下,则 path = server.MapPath("download/"&filename)
'***********************************
'测试用
'response.Write(path)
'response.Write(filename)
'response.End()
'***********************************
fliesend=0
TransferFile = True
Set objectFile = Server.CreateObject("Scripting.FileSystemObject")
Set objfile = objectFile.GetFile(Path)
Set objStream = objfile.OpenAsTextStream(1,-1)
Response.AddHeader "content-type", pathtype
response.AddHeader "Content-Disposition","attachment;filename="&filename
Response.AddHeader "content-length", objfile.Size
Do While Not objStream.AtEndOfStream
strchar = objStream.Read(1)
Response.BinaryWrite(strchar)
fliesend = fliesend + 1
If (fliesend MOD loadfilesize) = 0 Then
Response.Flush
If Not Response.IsClientConnected Then
TransferFile = False
Exit Do
End If
End If
Loop
Response.Flush
If Not Response.IsClientConnected Then
TransferFile = False
end if
objStream.Close
Set objStream = Nothing
Set objectFile = Nothing
End Function
'****************************************************
'** 文件下载函数结束 **
'****************************************************
Dim fileneme,downloadfile
filename = request("filename") '此处的 filename 仅为下载文件的名称(包括扩展名)
downloadfile = Filedownload(filename) '调用文件下载函数
Response.End
%>
用ASP实现文件下载的更多相关文章
- ASP.NET文件下载各种方式比较:对性能的影响、对大文件的支持、对断点续传和多线程下载的支持
asp.net里提供了多种方式,从服务器端向客户端写文件流,实现客户端下载文件.这种技术在做防下载系统时比较有用处.主些技术主要有:WriteFile.TransmitFile和BinaryWrite ...
- asp.net 文件下载(txt,rar,pdf,word,excel,ppt)
aspx 文件下载说起来一点都不难,但是在做的过程中还是遇到了一些小小的问题,就是因为这些小小的问题,导致解决起来实在是太难了,其中一个就是Response.End();导致下载文件出现线程终止的情况 ...
- asp.net文件下载文件另存为
这是一个困惑已久的问题…… 首先,用<a>标签的href打开浏览器能解读的文件(如txt,jpg,pdf等),会自动打开,无法做到弹出另存为的效果. 其次,网上搜索了各种JS解决办法,包括 ...
- Asp.Net 文件下载1——流下载(适用于大文件且防盗链)(转)
使用流防盗链下载大文件 直接上 Asp.net 后置代码好了 using System; using System.Data; using System.Configuration; using Sy ...
- ASP.NET 文件下载
using System; using System.Web; using System.IO; public partial class _Default : System.Web.UI.Page ...
- asp.net文件下载
protected void btn_Down(object sender, EventArgs e) { string filePath = Server.MapPath("/TradeL ...
- asp.net 文件下载显示中文名称
protected void Page_Load(object sender, EventArgs e) { string guid = Request.QueryString[& ...
- ASP.netMVC文件下载的几种方法
第一种:最简单的超链接方法,标签的href直接指向目标文件地址,这样容易暴露地址造成盗链,这里就不说了 第二种:后台下载 在后台下载中又可以细分为几种下载方式 首先,在前台,我们需要一个标签 &quo ...
- ASP.net MVC 文件下载的几种方法(欢迎讨论)
在ASP.net MVC 中有几种下载文件的方法 前提:要下载的文件必须是在服务器目录中的,至于不在web项目server目录中的文件下载我不知道,但是还挺想了解的. 第一种:最简单的超链接方法,&l ...
随机推荐
- altium笔记转载
原理图的设计 1.左键单击元器件按住space键可以将其旋转,按X键左右旋转:按Y键上下旋转. 2.智能粘贴:Edit àsmart paste . 3.屏障:compile mask(编译时被屏障的 ...
- 【BASIS系列】SAP /usr/sap//DVEBMGS00满了怎么处理
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[BASIS系列]SAP /usr/sap//D ...
- String 和 new String()的区别
String 和 new String()的区别 For Example String str1 = "ABC" String str2 = new String("AB ...
- docker--docker版本以及安装
3 docker 版本以及安装 3.1 docker 版本介绍 https://www.docker.com/ Docker CE 在 17.03 版本之前叫 Docker Engine, Docke ...
- JAVA总结--泛型
泛型 :程序设计语言的一种特性:将类型参数化: 特征:凡是涉及到强制类型转化的地方,使用泛型均会编译出现问题:泛型仅仅在编译时进行校验,使用泛型的对象,其本质的类型依然不变: ps:不存在泛型数组 一 ...
- web框架的本质(使用socket实现的最基础的web框架、使用wsgiref实现的web框架)
import socket def handle_request(client): data = client.recv(1024) client.send("HTTP/1.1 200 OK ...
- 06-File-文件
文件 长久保存信息的一种数据信息集合 常用操作 打开关闭(文件一旦打开,需要关闭操作) 读写内容 查找 open函数 open函数负责打开文件,带有很多参数 第一个参数: 必须有,文件的路径和名称 m ...
- 【推荐系统】知乎live入门2.细节补充
参考链接 [推荐系统]知乎live入门 目录 1. 综述 2. 召回 3. 用户画像与标签 4. 特征工程 5. 点击率预估 6. 评估 7. 数据标注 8. 推荐 ================= ...
- 20191125PHP抽象类、接口和魔术方法
抽象类 不能被实例化,用于其他类的继承.使用abstract(抽象).抽象方法一定是抽象类,抽象类不一定有抽象方法. 接口interface是特殊的抽象类. eg: <?php //抽象类 ab ...
- vue Base64图片压缩上传OSS
this.compress(result, 800, 0.5).then(val => { //得到压缩图片 let data = val; that.file = that.dataURLto ...