Проблема с ContentType в ASP
От: taran11  
Дата: 03.12.04 14:30
Оценка:
Всем привет!
Для начала простенький код:
---------------------------------------------------------
Response.Buffer=false
Response.ContentType = "application/octetstream"
response.AddHeader "Content-disposition", "filename=download.exe"
response.Expires = 0
response.CacheControl = "no-cache"
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = 1
objStream.LoadFromFile "download.exe"
Response.BinaryWrite objStream.Read
objStream.Close
Set objStream = Nothing
----------------------------------------------
Проблема проявляется на стороне клиента,
если используется MS IE 5 , 5.5 , 6.0 браузер не
открывает диалоговое окно с вопросом о загрузке
файла, а заливает его [файла] содержимое прямо
в свое окно. Я думаю, что IE неправильно распознает
ContentType, или я его неправильно задаю.

Замечено, что, мозила, нетскейп в этой ситуации
по чесному предлагают сохранить файл на диск.

Что я делаю не так?

--------------------------------------------------------------------
Всех благ!

Михаил Таран mailto:taran1122@tut.by
(Двойки в адресе для спамеров)
--------------------------------------------------------------------
Posted via RSDN NNTP Server 1.9 delta
Re: Проблема с ContentType в ASP
От: Chat_Noir  
Дата: 03.12.04 15:09
Оценка:
Здравствуйте, taran11, Вы писали:

T>---------------------------------------------------------

T>Response.Buffer=false
T>Response.ContentType = "application/octetstream"
T>response.AddHeader "Content-disposition", "filename=download.exe"
T>response.Expires = 0
T>response.CacheControl = "no-cache"
T>Set objStream = Server.CreateObject("ADODB.Stream")
T>objStream.Open
T>objStream.Type = 1
T>objStream.LoadFromFile "download.exe"
T>Response.BinaryWrite objStream.Read
T>objStream.Close
T>Set objStream = Nothing
T>----------------------------------------------



    Response.ContentType = "application/octetstream"
    Response.AddHeader("Content-Disposition", "attachment; filename=download.exe");
    Response.BufferOutput = true;
    // тут запись из потока в response
    Response.End();


Так должно работать.
Re[2]: Проблема с ContentType в ASP
От: Аноним  
Дата: 03.12.04 16:03
Оценка:
Здравствуйте, Chat_Noir, Вы писали:

C_N>Здравствуйте, taran11, Вы писали:


T>>---------------------------------------------------------

T>>Response.Buffer=false
T>>Response.ContentType = "application/octetstream"
T>>response.AddHeader "Content-disposition", "filename=download.exe"
T>>response.Expires = 0
T>>response.CacheControl = "no-cache"
T>>Set objStream = Server.CreateObject("ADODB.Stream")
T>>objStream.Open
T>>objStream.Type = 1
T>>objStream.LoadFromFile "download.exe"
T>>Response.BinaryWrite objStream.Read
T>>objStream.Close
T>>Set objStream = Nothing
T>>----------------------------------------------


C_N>

C_N>    Response.ContentType = "application/octetstream"
C_N>    Response.AddHeader("Content-Disposition", "attachment; filename=download.exe");
C_N>    Response.BufferOutput = true;
C_N>    // тут запись из потока в response
C_N>    Response.End();
C_N>


C_N>Так должно работать.


Сделал как учили, только поменял
Response.BufferOutput = true; на
Response.Buffer = true

К сожалению, результат тот-же.

--------------------------------------------------------
Всех благ!

Михаил Таран mailto:taran1122@tut.by
(Двойки в адресе для спамеров)
--------------------------------------------------------
Re[2]: Проблема с ContentType в ASP
От: Аноним  
Дата: 06.12.04 09:14
Оценка:
Нужно чтобы в Response.AddHeader "attachment;" было.
В вашем исходном файле его нет.



данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[3]: Проблема с ContentType в ASP
От: taran11  
Дата: 07.12.04 11:49
Оценка:
Здравствуйте, _www_.

Теперь код имеет такой вид:

set fso=Server.CreateObject("Scripting.FileSystemObject")
set file1=fso.GetFile("download.exe")
Response.Buffer=true
Response.ContentType = "application/octetstream"
response.AddHeader "Content-Length", file1.size
response.AddHeader "Content-Disposition", "attachment; filename=download.exe"
'Response.BufferOutput = true
response.Expires = 0
response.CacheControl = "no-cache"
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = 1
objStream.LoadFromFile "download.exe"
Response.BinaryWrite objStream.Read
objStream.Close
Set objStream = Nothing
set file1 = Nothing
Response.End()

Но IE вместо диалога сохранения выдает следующее:

MZP???яяё@??є???ґ Н!ё?LН!ђђThis program must be run under Win32 $7PEL??\?б<а?? ?? 0?ђХ?@?а?@???????? ???°ш?¤?а?°?UPX00???ЂаUPX1 @?˜?@а.rsrc а??њ@А1.20UPX! ? гЖqю{ФИhЇ№?†•J?&?ЬwяТьй??˜ђjhi?@? ! ...

И так далее.
Что еще может быть?

Всех благ!

Михаил Таран mailto:taran1122@tut.by
(Двойки в адресе для спамеров)
---------------------------------------------------


"_www_" <0@users.rsdn.ru> сообщил/сообщила в новостях следующее: news:932717@news.rsdn.ru...
From: _www_ аноним

Нужно чтобы в Response.AddHeader "attachment;" было.
В вашем исходном файле его нет.



------------------------------------------------------------------------------
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение

Re[2]: Проблема с ContentType в ASP Оценить
Posted via RSDN NNTP Server 1.9 delta
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.