download.asp?file=相对路径的文件
就可以把这个文件下载下来
<%
2
3 call downloadFile(replace(replace(Request("file"),"\",""),"/",""))
4
5 Function downloadFile(strFile)
6 ' make sure you are on the latest MDAC version for this to work
7 ' -------------------------------------------------------------
8
9
10 ' get full path of specified file
11 strFilename = server.MapPath(strFile)
12
13
14 ' clear the buffer
15 Response.Buffer = True
16 Response.Clear
17
18 ' create stream
19 Set s = Server.CreateObject("ADODB.Stream")
20 s.Open
21
22 ' Set as binary
23 s.Type = 1
24
25 ' load in the file
26 on error resume next
27
28
29 ' check the file exists
30 Set fso = Server.CreateObject("Scripting.FileSystemObject")
31 if not fso.FileExists(strFilename) then
32 Response.Write("<h1>Error:</h1>" & strFilename & " does not exist<p>")
33 Response.End
34 end if
35
36
37 ' get length of file
38 Set f = fso.GetFile(strFilename)
39 intFilelength = f.size
40
41
42 s.LoadFromFile(strFilename)
43 if err then
44 Response.Write("<h1>Error: </h1>" & err.Description & "<p>")
45 Response.End
46 end if
47
48 ' send the headers to the users browser
49 Response.AddHeader "Content-Disposition", "attachment; filename=" & f.name
50 Response.AddHeader "Content-Length", intFilelength
51 Response.CharSet = "UTF-8"
52 Response.ContentType = "application/octet-stream"
53
54 ' output the file to the browser
55 Response.BinaryWrite s.Read
56 Response.Flush
57
58
59 ' tidy up
60 s.Close
61 Set s = Nothing
62
63
64 End Function
65
66 %>
当然,从安全方面着想,最好是不要把文件路径放在url中
分享到:
相关推荐
在了解如何使用ASP技术结合ADODB.Stream对象来实现文件的下载而不是直接在浏览器中打开之前,我们首先需要了解一些基础的概念。当用户在浏览器的地址栏输入一个文件的URL路径时,浏览器会根据文件类型决定如何处理该...
通过使用Adodb.Stream结合HTTP协议中的Range字段,可以实现对大文件的多线程下载,且支持断点续传功能。断点续传是指在网络请求中断之后,可以从上次中断的地方重新开始下载,而不需要从头开始,这大大提高了用户...
ASP无组件上传是一种在ASP(Active Server Pages)环境中实现文件上传的技术,无需额外安装服务器端组件,通过内置的对象如Adodb.Stream来处理文件流。这种技术对于那些无法或不想安装额外组件的服务器环境来说非常...
在本示例中,使用的是ADODB.Stream对象,这是一个可以用来读写文件的对象。 在文章中提供了两个主要函数来展示如何读写二进制文件: 1. TestWrite函数:它创建了一个ADODB.Stream对象,并将其设置为文本模式。它...
具体来说,它是利用`ADODB.Stream`对象读取文件内容,并通过HTTP响应将这些内容发送到客户端浏览器,从而实现文件下载的目的。这种方式的一个显著优势是可以在不暴露源文件实际地址的情况下让用户下载文件。 ##### ...
本文提出的基于Web的大文件上传技术方案,利用JavaScript和ADODB.Stream技术实现了文件的分块读取,通过XMLHttp技术实现了文件块的异步发送,并在服务器端记录接收日志,以此为基础实现了断点续传功能。这种方法不仅...
这个例子展示了如何使用ASP和ADODB.Stream将一个文本文件压缩成ZIP格式并直接发送到客户端浏览器。客户端浏览器将自动下载这个ZIP文件。 然而,实际应用中可能还需要处理更多的细节,例如处理多个文件的压缩、设置...
- 利用`FileSystemObject`和`ADODB.Stream`对象进行文件读取和处理。 - 正确设置HTTP响应头,包括`Content-Type`和`Content-Disposition`等。 以上就是ASP实现文件下载功能的核心知识点及代码解析。希望这些信息...
这种方法可以应用于多种场景,比如分享文件、提供软件下载等,同时还能确保服务器资源的有效利用。在实际应用中,可能需要根据具体需求进行错误处理和优化,比如检查文件是否存在、设置超时限制等。
根据提供的标题、描述以及...综上所述,这段代码提供了一个简单的示例,展示了如何使用 ASP 和 ADODB.Stream 在网页中实现文件上传功能。然而,在实际项目开发中,还需要进一步完善和优化代码,以满足更复杂的需求。
// 使用ADODB.Stream处理文件 } catch (e) { // ... } } ``` 在读取文件后,你需要将二进制数据转化为适合Ajax传输的格式。通常,你可以将二进制数据转换为Base64字符串,因为JSON不支持二进制数据,而Base64...
使用`Request`对象的`BinaryRead`方法读取文件数据,然后使用`FileSystemObject`或`ADODB.Stream`对象写入文件。以下是一个简单的示例: ```vbscript Dim fileData, fileName, savePath fileData = Request....
使用`ADODB.Stream`对象读取文件内容。 5. **设置HTTP响应头:** ```asp selectcase lcase(right(flname,4)) case".asf" ContentType="video/x-ms-asf" ... case".txt" ContentType="text/plain" ... ...
该过程创建一个XMLHttpRequest对象,使用GET方法从指定的URL下载数据,然后使用Adodb.Stream对象将数据写入到本地文件中。 3. **执行脚本**:将上述脚本保存并在目标服务器上执行,例如,调用`eWebEditor_...
前请先确保服务器支持ACCESS数据库(登陆用),FSO,ADODB.STREAM(文件上传)。 本程序系多用户程序,用户分为超级用户和普通用户两类。当以管理员身份登陆后可以添加用户,修改用户和删除用户。 系统初始...
4. **文件流处理**:使用`ADODB.Stream`对象读取文件内容并将其发送到客户端。 ```vbscript Set objStream = Server.CreateObject("ADODB.Stream") objStream.Open objStream.Type = 1 '设置为二进制类型 objStream...
以下是一个简单的示例,展示了如何使用VBScript通过ADODB.Stream读取图像文件并获取尺寸: ```vbscript Dim stream, imgData, width, height Set stream = Server.CreateObject("ADODB.Stream") stream.Type = 1 '...
在ASP中,流文件下载通常通过ADODB.Stream对象实现。首先,我们需要打开一个流对象,然后将ASP文件的内容写入该流中。接着设置Content-Disposition头信息,以告知浏览器这是一个附件并建议文件名。最后,将流的内容...
3. **创建Excel文件**:使用`ADODB.Stream`对象来创建一个Excel文件。设置其类型为二进制,然后添加Excel文件的头信息。 ```vbscript Dim excelStream Set excelStream = Server.CreateObject("ADODB.Stream") ...