Need help
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=".$file );
header("Content-Length: ".filesize($path.$file));
header("Content-Type: application/force-download");
readfile($path.$file);
exit;
}
Вроде всё работает хорошо, кроме тех случаев, когда в имени присутствует ";", тогда часть имени после него просто отрубается, я догадываюсь почему, но обойти эту проблему не смог. Подскажите какое-нибудь решение...
Сам не пробовал но можно попробовать делать перед ; ставить \
Для этого вроде даже есть функция PHP но я не помню какая
Сам не пробовал но можно попробовать делать перед ; ставить \
Для этого вроде даже есть функция PHP но я не помню какая
Я это всё вроде уже перепробовал, не помогает.
Я так полагаю, что сама функция всё делает правильно, наверное сам браузер расценивает ;, как конец имени файла. Кстати в Опере всё работает, а вот в IE нет.
В IE ; это похоже разделитель запроса
Например:
<meta HTTPEQUIV name="refresh' value="Seconds; URL">
Надо, чтобы скачивались файлы, пишу
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;
}
а обязательно сохранять имя файла? я бы сделал так
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;
}
Такой вариант уже применён и работает...
Но хотелось бы сохранять оригинальные имена файлов...
Такой вариант уже применён и работает...
Но хотелось бы сохранять оригинальные имена файлов...
Ну тогда я не знаю.
Эта функция добовляет слэши addslashes(). Но точка с запятой - это не специальный символ, он не заслэшовывается. Так что это не поможет.
Можно просекать под каким браузером зашёл юзер, и только для ИЕ делать ereg_replace.
Ну тогда я не знаю.
Эта функция добовляет слэши addslashes(). Но точка с запятой - это не специальный символ, он не заслэшовывается. Так что это не поможет.
Можно просекать под каким браузером зашёл юзер, и только для ИЕ делать ereg_replace.
addslashes пробовал, но сказано ; не спец символ.
Ещё думал, что может помоч htmlspecialchars, но опять же браузер видно сам уже снова возвращает ; и в результате получаем тоже самое...
addslashes пробовал, но сказано ; не спец символ.
Ещё думал, что может помоч htmlspecialchars, но опять же браузер видно сам уже снова возвращает ; и в результате получаем тоже самое...
htmlspecialchrs для другого ))
Например этот код:
Она заменит на:
<br>
Т.е она заменяет HTML-теги на текст