загрузка php не работает для &
У меня есть эта функция php для загрузки файлов с моего public_html.
function download($file){
$dir = "RepList/";
$path = $dir.$file;
if(!file_exists($path))
{
die("Error : The file does not exists !");
}else{
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$file");
header("Content-Typr: application/w3g");
header("Content-Transfer-Encoding: binary");
readfile($path);
}
}
if (isset($_GET['download']))
{
if(!empty($_GET['download']))
{
$file = $_GET['download'];
download($file);
}
}
Для загрузки я использую что-то вроде:
<a class="download" id="download'.$i.'_" href="../download.php?download='.$cc->EList[$i]->getEName().'" target="_blank">Download</a>
Если у меня в имени файла есть символ "&", я получу сообщение "Ошибка: файл не существует!". Я работал над этим примерно 1 год назад, и теперь я хочу исправить ошибку.
Есть какие-нибудь советы? Что-нибудь легкое и быстрое.
2
1 answers
Вероятно, вам следует использовать функцию urlencode()
и изменить создание HTML-ссылки на:
<a class="download" id="download'.$i.'_" href="../download.php?download='.urlencode($cc->EList[$i]->getEName()).'" target="_blank">Download</a>
В противном случае &
символ обрабатывается как разделитель переменных в URL
3
Author: Marcin Nabiałek, 2014-07-18 13:51:11