实现在ASP网页中进行下载时,能够重命名已上传文件的新下载文件名,可以通过以下步骤来实现:
- 在ASP页面中引入文件系统对象和ADO对象,提供下载文件的基础信息。
<!--#include file="adovbs.inc"-->
<%
Dim fso, conn, rs
Set fso = CreateObject("Scripting.FileSystemObject") '文件系统对象
Set conn = Server.CreateObject("ADODB.Connection") 'ADO对象
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("database.mdb") '连接Access数据库
rs.Open "SELECT * FROM Files WHERE ID=" & Request("fileid"), conn, adOpenStatic '通过文件ID获取文件记录信息
If Not rs.EOF Then
Dim fileName, filePath, fileSize
fileName = rs("Name") '文件名
filePath = rs("Path") '文件路径
fileSize = rs("Size") '文件大小
End If
%>
- 通过ASP页面中的Response对象,设置下载文件的HTTP头信息,指定新下载文件名。
Response.ContentType = "application/octet-stream"
Response.AddHeader "Content-Disposition", "attachment;filename=" & HttpUtility.UrlEncode("new_name.txt", System.Text.Encoding.UTF8)
Response.AddHeader "Content-Length", fileSize
Response.TransmitFile(Server.MapPath(filePath))
Response.End
上述示例代码中,通过Response.ContentType
指定文件类型,Response.AddHeader
设置HTTP头信息,其中Content-Disposition
指定下载的方式及新文件名,Content-Length
指定文件大小,TransmitFile
将文件发送至客户端,End
结束HTTP响应。
- 完整代码示例
<%
Dim fso, conn, rs
Set fso = CreateObject("Scripting.FileSystemObject")
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("database.mdb")
rs.Open "SELECT * FROM Files WHERE ID=" & Request("fileid"), conn, adOpenStatic
If Not rs.EOF Then
Dim fileName, filePath, fileSize
fileName = rs("Name")
filePath = rs("Path")
fileSize = rs("Size")
Response.ContentType = "application/octet-stream"
Response.AddHeader "Content-Disposition", "attachment;filename=" & HttpUtility.UrlEncode("new_name.txt", System.Text.Encoding.UTF8)
Response.AddHeader "Content-Length", fileSize
Response.TransmitFile(Server.MapPath(filePath))
Response.End
End If
%>
- 视频文件下载示例
<%
Dim fso, conn, rs
Set fso = CreateObject("Scripting.FileSystemObject")
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("database.mdb")
rs.Open "SELECT * FROM Files WHERE ID=" & Request("fileid"), conn, adOpenStatic
If Not rs.EOF Then
Dim fileName, filePath, fileSize
fileName = rs("Name")
filePath = rs("Path")
fileSize = rs("Size")
Response.ContentType = "video/mp4"
Response.AddHeader "Content-Disposition", "attachment;filename=" & HttpUtility.UrlEncode("new_name.mp4", System.Text.Encoding.UTF8)
Response.AddHeader "Content-Length", fileSize
Response.TransmitFile(Server.MapPath(filePath))
Response.End
End If
%>
上述示例代码中,通过Response.ContentType
指定下载的文件类型为视频类型,Response.AddHeader
设置HTTP头信息,其中Content-Disposition
指定下载的方式及新文件名,Content-Length
指定文件大小,TransmitFile
将文件发送至客户端,End
结束HTTP响应。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ASP 下载时重命名已上传文件的新下载文件名的实现代码 - Python技术站