php ftp_nlist ссылка для скачивания - PullRequest
0 голосов
/ 30 марта 2012

Я пытаюсь отобразить некоторые файлы на веб-странице, чтобы пользователь мог загрузить их, я отображаю файлы правильно, но ссылка href не работает, вместо загрузки файла браузер пытается отобразить файл в браузере и отправить:

Не найдено

Запрошенный URL /public_html/Factura.pdf не найден на этом сервере.

Кроме того, при попытке использовать ErrorDocument для обработки запроса возникла ошибка 404 Not Found.

$connect = ftp_connect("xxx.org");
$result = ftp_login($connect, "xxx", "xxx");
$a = ftp_nlist($connect, "./public_html/");
foreach($a as $value){
echo '<a href="'.$value.'">'.basename($value).'</a> <BR>';
}

как я могу это сделать? спасибо!

Ответы [ 2 ]

0 голосов
/ 30 марта 2012

Вы можете использовать функцию basename () в пути, это даст вам имя файла:

foreach($a as $value){
echo '<a href="'.basename($value).'">'.basename($value).'</a> <BR>';
}

Редактировать: Если файлы локальныебыло бы быстрее просто glob () или opendir () каталог, я предполагаю, что ваша цель - использовать этот скрипт на удаленном сервере, поэтому я бы также предложил вам включить URLна сервер хостинга.

$server="xxx.org";
$connect = ftp_connect($server);
$result = ftp_login($connect, "xxx", "xxx");
$a = ftp_nlist($connect, "./public_html/");
foreach($a as $value){
echo '<a href="http://'.$server.'/'.basename($value).'">'.basename($value).'</a> <BR>';
}
0 голосов
/ 30 марта 2012

Каталог public_html / недоступен для просмотра вне ftp, это ваша корневая папка. Вам нужно удалить это из ссылки так же, как при отображении имени файла, с помощью basename().

echo '<a href="'.basename($value).'">'.basename($value).'</a> <BR>';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...