|
|
28.07.2007, 11:15
|
|
Гость
Гость
|
Как сделать, чтоб при клике на ссылку файл в любом случае скачивался, а не открывался в браузере?
А то сейчас некоторые (txt, xls..) начинают открываться прямо в окне, можно ли это дело однозначно запретить?
|
|
|
28.07.2007, 11:26
|
|
Гость
Гость
|
уточню...
версия 2.4, т.е. имеется в виду файловая система Нетката, где все через h_ и заголовки идут через обработчик 404
попробовал после закачки текстового файла сменить в базе данных значение поля File_Type в таблице Filetable c text/plain на application/octet-stream - но все равно не хватает, файл в окошке открывается
|
|
|
28.07.2007, 14:11
|
|
d
Зарегистрирован: 2007-02-09
Сообщений: 93
|
неважно какая версия.
Это устанавливается в настройках браузера - что делать с определенным типом файлов: открыть или скачать.
Можно, на самом деле, написать скрипт, который будет отдавать файл только для сохранения, приблизительно вот так: http://mst.com.ua/messages/post/3084-re-download-with-header-file-corrupted.html (на работоспособность не проверял, показал для примера header'ов)
|
|
|
28.07.2007, 20:54
|
|
Гость
Гость
|
Да, все верно, что это зависит от настроек браузера. Задача и состоит в том, чтоб не зависеть уже от этих настроек, а однозначно скачивать...
И для этого нужно отдать браузеру соответствующие заголовки, в частности, в вашем же примере:
Цитата:
If you want to force a download, use:
header("Content-type: application/octet-stream");
Every browser ever made knows that means "download"
Но Неткат сам отдает нужные заголовки через 404 обработчик, и если путь к файлу содержит h_ , то скриптец формирует соответсвующие хедеры, взяв половину данных из таблицы Filetable и дописав несколько других.
В цитате как раз и подтверждается, что надо указать тип файла application/octet-stream, и все начнет скачиваться
но у меня почему-то не работает
может какой-то другой заголовок мешается, не знаю...
|
|
|
28.07.2007, 21:23
|
|
d
Зарегистрирован: 2007-02-09
Сообщений: 93
|
так я как раз и предложил не ориентироваться на заголовки системы Взять реальный путь без h_ (который хранится в $f_File_url), и выдавать строго определенный набор заголовков (попутно тоже вытащив из Filetable доп. информацию)
|
|
|
28.07.2007, 23:34
|
|
Гость
Гость
|
Да, спасибо, кажется, разобрался.
По-моему, дело оказалось в заголовке Content-Disposition: attachment;
(у Нетката в 404 для всех файлов прописывается Content-Disposition: inline;)
По крайней мере, когда написал отдельный скриптик, все заработало нормально именно после этого...
|