Ошибка в коде для скачивания файла (txt) в классическом ASP - PullRequest
0 голосов
/ 20 декабря 2010

Я пробовал 2 разных кода, это один:

nombre="Prueba.txt"
set stream = Server.CreateObject("ADODB.Stream")
stream.Open
stream.Type = 2 ' binary
stream.LoadFromFile(Server.MapPath("./File/"&nombre))
Response.BinaryWrite(stream.Read)

И другой код, который я пытаюсь это:

Response.ContentType = "application/x-unknown" ' arbitrary 

FPath = Server.MapPath("./File/"&nombre) 
Response.AddHeader "Content-Disposition","attachment; filename=" & nombre 

Set adoStream = CreateObject("ADODB.Stream") 
adoStream.Open() 
adoStream.Type = 1 
adoStream.LoadFromFile(FPath) 
Response.BinaryWrite adoStream.Read() 
adoStream.Close 
Set adoStream = Nothing 

Response.End 

И я получаю, что он нашелнеуказанный / определенный тип данных.

Ответы [ 2 ]

2 голосов
/ 22 декабря 2010

@ Джанкарло Солярино: попробуйте это -

Option Explicit

Dim sFileName, sFilePath, iFileSize
Dim oFile, oFS, oStream

sFileName = "Prueba.txt"
sFilePath = Server.MapPath("File/" & sFileName)

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

If oFS.FileExists(sFilePath) Then
    Set oFile = oFS.GetFile(sFilePath)
    iFileSize = oFile.Size
    Set oFile = Nothing

    Response.AddHeader "Content-Disposition","attachment; filename=" & sFileName
    Response.ContentType = "application/download"
    Response.AddHeader "Content-Length", iFileSize

    Set oStream = Server.CreateObject("ADODB.Stream")
    oStream.Open
    oStream.Type = 1
    oStream.LoadFromFile sFilePath

    Do While NOT oStream.EOS AND Response.IsClientConnected
        Response.BinaryWrite oStream.Read(1024)
        Response.Flush()
    Loop

    oStream.Close
    Set oStream = Nothing
End If
0 голосов
/ 21 декабря 2010

У меня есть некоторый рабочий код, примерно такой же, но в конце я использую ContentType = "image/jpeg" и Response.Flush.

Const adTypeBinary = 1

dim strFileName
strFileName = "archivo.jpg"

dim strFilePath
strFilePath = "C:\temp\" + strFileName

dim objStream
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = adTypeBinary
objStream.LoadFromFile strFilePath

Response.AddHeader "Content-Disposition", "attachment; filename=" & strFileName
Response.Charset = "UTF-8"
Response.ContentType = "image/jpeg"

Response.BinaryWrite objStream.Read
Response.Flush
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...