BinaryWrite не отдает файлы :(
От: wkbrd  
Дата: 26.12.05 13:15
Оценка:
IIS5. файл '101' находится в директории 'e:\files\'
это файл Word, но в той же директории куча файлов других типов
и каждый из этих файлов нужно отдать клиенту.
Для получения файла клиент использует запрос вида http://server/getfile.asp?id=101
кусок кода определения DownloadFileName по id опущен.

<%
Response.Expires=0

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

'местоположения файла на сервере
DownloadFileName = "e:\files\101"
If fs.FileExists(DownloadFileName) Then
'устанавливаем тип файла
Response.ContentType = "application/x-unknown"
Response.AddHeader "Cache-control", "no-cache"
Response.AddHeader "Content-Disposition","attachment; filename=111.doc"

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

Response.End
End If
%>

Все выглядит верно, но не работает
причем появляется "Сохранить или открыть" причем тип файла определяется верно, потому что показывается правильная иконка.
Но в тот момент, когда должна произойти реальная скачка или открывание — браузер ругается, мол не могу открыть getfile.asp?id=101

На сервере включено сжатие, но кажется его выключение не влияет на ошибку.

Подскажите пожалуйста как правильно отдавать файлы клиентам? Заранее спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.