我试图维护一个旧的ASP页面,该页面从数据库中检索文件并将其下载到最终用户。此页面适用于较旧的文件,但现在"腐败"具有Docx文件类型的文件。
我认为这是"腐败"较旧的文件,但Word能够处理微小的差异,而使用DocX格式的东西更挑剔。
以下是进行下载的代码。
Set rs = Server.CreateObject("ADODB.Recordset")
' opening connection
rs.Open "SELECT FileName, FileData, ContentType FROM Docs WHERE GetDocID='" & GetDoc & "'" , conn, 2, 4
If Not rs.EOF Then
Response.Clear()
Response.AddHeader "Content-Disposition", "attachment; filename="& rs("FileName")
Response.ContentType = rs("ContentType")
Response.BinaryWrite rs("FileData")
Response.Flush()
'Response.Close()
Response.End()
End If
rs.Close
Set rs = Nothing
任何可能遗漏或导致问题的想法?
我注意到预上传文件比上传后文件大一个字节。
以下是上传代码:
Dim rs
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "Docs", conn, 2, 2
rs.AddNew
rs("FileName") = fileName
rs("FileSize") = fileSize
rs("FileData").AppendChunk = fileData
rs("ContentType") = contentType
rs("DocTitle") = DocTitle
rs("ProjectID") = ProjectID
rs.Update
rs.Close
Set rs = Nothing
答案 0 :(得分:0)
尝试使用ChrB(charcode)函数以二进制显式编写 (ChrB函数将字符转换为字节)
sFileData = rs("FileName")
For i=1 To Len(sFileData)
Response.BinaryWrite ChrB(Mid(sFileData,i,1))
Next