ASP实现强制图片下载函数

网络编程 2025-03-23 19:27www.168986.cn编程入门

近期我在处理一个ASP项目,需要实现强制下载图片的功能。我在网上搜索了许多关于如何通过ASP代码下载远程图片的解决方案,但测试结果均未能达到预期效果。我决定亲自尝试编写相关代码,若有不足,还请大家多多指正。

通常情况下,图片默认会在浏览器中打开并显示。但如果你想让图片变为下载文件,可以使用以下ASP代码实现:

```asp

Function downloadFile(strFile)

'将服务器相对路径转换为绝对路径

strFilename = server.MapPath(strFile)

'开启响应缓冲并清空响应内容

Response.Buffer = True

Response.Clear

'创建一个ADODB.Stream对象

Set s = Server.CreateObject("ADODB.Stream")

s.Open

'设置Stream类型为二进制格式

s.Type = 1

'检查文件是否存在

On Error Resume Next

Set fso = Server.CreateObject("Scripting.FileSystemObject")

If Not fso.FileExists(strFilename) Then

Response.Write("

Error:

" & strFilename & " does not exist

")

Response.End

End If

'获取文件大小并加载文件内容到Stream对象中

Set f = fso.GetFile(strFilename)

intFilelength = f.size

s.LoadFromFile(strFilename)

If Err Then

Response.Write("

Error:

" & Err.Description & "

")

Response.End

End If

'设置响应头信息,实现强制下载并指定文件名和类型

Response.AddHeader "Content-Disposition", "attachment; filename=" & f.name

Response.AddHeader "Content-Length", intFilelength

Response.CharSet = "UTF-8"

Response.ContentType = "application/octet-stream"

'将文件内容以二进制形式写入响应并刷新响应缓冲区

Response.BinaryWrite s.Read

Response.Flush

'关闭Stream对象并释放资源

s.Close

Set s = Nothing

End Function

```

以上就是本人给大家分享的函数,希望对学习ASP的朋友有所帮助。若有任何疑问或建议,欢迎大家一起交流讨论。

上一篇:Javascript中的getUTCHours()方法使用详解 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by