PHP: запросить загрузку с ftp? - PullRequest
2 голосов
/ 15 июля 2010

хе, ребята, Мне действительно нужна твоя помощь. Я успешно подключился к серверу ftp через php. Я перечисляю все файлы, которые находятся на сервере. если я щелкаю файл, браузер должен запросить окно загрузки, чтобы загрузить файл.

Я абсолютно не знаю, как это сделать. какой метод я собираюсь использовать. ftp_get меня смущает. он говорит, что я также должен объявить local_file. я просто хочу, чтобы файл с сервера загружался на мой жесткий диск.

как я могу это сделать?

С уважением, Мэтт

Ответы [ 2 ]

1 голос
/ 15 июля 2010

Удаленный файл должен быть сначала загружен на ваш сервер, прежде чем вы сможете отправить его пользователю.Это невидимо для пользователя, но у вас нет выбора.PHP не позволяет браузеру напрямую общаться с FTP-сервером.

Создайте отдельный скрипт php, который вызывает ftp_get для определенного файла, временно сохраняет его на вашем сервере, чтобы позволить пользователю загрузить его.

Что-то вроде:

<?php
//assume the page was called like download.php?filename=downloaded.pdf
header('Content-Disposition: attachment; filename="'.$_GET['filename'].'"');
$tempFile = 'temp'.rand();
ftp_get($ftp, $tempFile, $_GET['filename'], FTP_BINARY);

readfile($tempFile);

Вы также можете добавить код для удаления tempFile.

0 голосов
/ 15 июля 2010

Если вы предоставите ссылку на файл, который не может быть прочитан браузером (например, файл php, аудио, видео и т. Д.), Он попросит вас загрузить файл.

Другой способ - использовать заголовки PHP на странице, распечатать страницу и перейти по ссылке на эту страницу. http://www.ryboe.com/tutorials/php-headers-force-download

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...