Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

Скачивание файлов из-под Нетката

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;)
По крайней мере, когда написал отдельный скриптик, все заработало нормально именно после этого...
198 196 2007-07-28 23:34:08 9050
Описание проекта