Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Need help

9.2K
04 июля 2005 года
BeelZeBoul
12 / / 21.04.2005
Надо, чтобы скачивались файлы, пишу
function download($path,$file) {
header("Content-Disposition: atachment; filename=".$file );
header("Content-Length: ".filesize($path.$file));
header("Content-Type: application/force-download");
readfile($path.$file);
exit;
}
Вроде всё работает хорошо, кроме тех случаев, когда в имени присутствует ";", тогда часть имени после него просто отрубается, я догадываюсь почему, но обойти эту проблему не смог. Подскажите какое-нибудь решение...
253
04 июля 2005 года
Proger_XP
1.5K / / 07.08.2004
Цитата:
Originally posted by BeelZeBoul
Надо, чтобы скачивались файлы, пишу
function download($path,$file) {
header("Content-Disposition: atachment; filename=".$file );
header("Content-Length: ".filesize($path.$file));
header("Content-Type: application/force-download");
readfile($path.$file);
exit;
}
Вроде всё работает хорошо, кроме тех случаев, когда в имени присутствует ";", тогда часть имени после него просто отрубается, я догадываюсь почему, но обойти эту проблему не смог. Подскажите какое-нибудь решение...


Сам не пробовал но можно попробовать делать перед ; ставить \
Для этого вроде даже есть функция PHP но я не помню какая

9.2K
04 июля 2005 года
BeelZeBoul
12 / / 21.04.2005
Цитата:
Originally posted by Proger_XP
Сам не пробовал но можно попробовать делать перед ; ставить \
Для этого вроде даже есть функция PHP но я не помню какая


Я это всё вроде уже перепробовал, не помогает.
Я так полагаю, что сама функция всё делает правильно, наверное сам браузер расценивает ;, как конец имени файла. Кстати в Опере всё работает, а вот в IE нет.

253
04 июля 2005 года
Proger_XP
1.5K / / 07.08.2004
Вообще-то говоря, специальные символы в именах файлов лучше не использовать ))
В IE ; это похоже разделитель запроса
Например:
<meta HTTPEQUIV name="refresh' value="Seconds; URL">
346
04 июля 2005 года
Новая папка
256 / / 24.12.2004
Цитата:
Originally posted by BeelZeBoul
Надо, чтобы скачивались файлы, пишу
function download($path,$file) {
header("Content-Disposition: atachment; filename=".$file );
header("Content-Length: ".filesize($path.$file));
header("Content-Type: application/force-download");
readfile($path.$file);
exit;
}
Вроде всё работает хорошо, кроме тех случаев, когда в имени присутствует ";", тогда часть имени после него просто отрубается, я догадываюсь почему, но обойти эту проблему не смог. Подскажите какое-нибудь решение...




а обязательно сохранять имя файла? я бы сделал так
function download($path,$file) {
header("Content-Disposition: atachment; filename=".ereg_replace(";","_",$file );
header("Content-Length: ".filesize($path.$file));
header("Content-Type: application/force-download");
readfile($path.$file);
exit;
}

9.2K
04 июля 2005 года
BeelZeBoul
12 / / 21.04.2005
Цитата:
Originally posted by Новая папка
а обязательно сохранять имя файла? я бы сделал так
function download($path,$file) {
header("Content-Disposition: atachment; filename=".ereg_replace(";","_",$file );
header("Content-Length: ".filesize($path.$file));
header("Content-Type: application/force-download");
readfile($path.$file);
exit;
}


Такой вариант уже применён и работает...
Но хотелось бы сохранять оригинальные имена файлов...

346
04 июля 2005 года
Новая папка
256 / / 24.12.2004
Цитата:
Originally posted by BeelZeBoul
Такой вариант уже применён и работает...
Но хотелось бы сохранять оригинальные имена файлов...



Ну тогда я не знаю.
Эта функция добовляет слэши addslashes(). Но точка с запятой - это не специальный символ, он не заслэшовывается. Так что это не поможет.

Можно просекать под каким браузером зашёл юзер, и только для ИЕ делать ereg_replace.

9.2K
04 июля 2005 года
BeelZeBoul
12 / / 21.04.2005
Цитата:
Originally posted by Новая папка
Ну тогда я не знаю.
Эта функция добовляет слэши addslashes(). Но точка с запятой - это не специальный символ, он не заслэшовывается. Так что это не поможет.

Можно просекать под каким браузером зашёл юзер, и только для ИЕ делать ereg_replace.



addslashes пробовал, но сказано ; не спец символ.
Ещё думал, что может помоч htmlspecialchars, но опять же браузер видно сам уже снова возвращает ; и в результате получаем тоже самое...

253
05 июля 2005 года
Proger_XP
1.5K / / 07.08.2004
Цитата:
Originally posted by BeelZeBoul
addslashes пробовал, но сказано ; не спец символ.
Ещё думал, что может помоч htmlspecialchars, но опять же браузер видно сам уже снова возвращает ; и в результате получаем тоже самое...


htmlspecialchrs для другого ))
Например этот код:


Она заменит на:
&lt;br&gt;
Т.е она заменяет HTML-теги на текст

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог