Скачать файл используя FTP и PHP - PullRequest
0 голосов
/ 20 октября 2010

Я хотел бы начать загрузку и загрузку сайта для огромных файлов (до 1 Гб). Я подумал, что было бы лучше скачать файлы с использованием FTP (с PHP), потому что этот протокол особенно используется для этих типов передач.

Клиент получает электронное письмо, включая ссылку для загрузки файла (например, yousendit.com). Когда они нажимают на ссылку, появляется окно загрузки. Моя проблема в том, что я не знаю, как показать окно загрузки с использованием ftp и php. Я прочитал, что невозможно сразу загрузить файл через PHP, используя FTP. Это правильно? Нужно ли создавать временные файлы на сервере, чтобы клиент мог загрузить файл? Если да, это также хорошее решение для больших файлов?

Что вы посоветуете мне дать клиентам возможность загружать эти огромные файлы?

Спасибо за ваш ответ!

Ответы [ 3 ]

0 голосов
/ 20 октября 2010

Вы можете сгенерировать уникальный адрес на основе session_id (создать эту папку во время выполнения и переместить туда огромный файл) и перенаправить пользователя по этой ссылке. Например, у вас есть файл great.tgz

1. Send you client link http://***/user/john/file/huge.tgz
2. Ask user for auth in this page if they lost session
3. get session id
4. create on your server folder with name equals session id and move huge.tgz here
5. redirect user to unique ftp link ftp://***/17oe5kf8iYmpt66bjs89hcuo83/huge.tgz

Вы должны запретитьсписок файлов и каталогов на ftp-сервере

0 голосов
/ 20 октября 2010

Вы, вероятно, хотите использовать PHP для обработки всего, кроме передачи файлов. После того, как вы сделали все необходимые проверки, вы можете перенаправить браузер в файл, указав протокол как ftp. хотя у вас не будет возможности отображать панель прогресса на вашем сайте, браузер / приложение ftp, вероятно, будет отображать ее.

0 голосов
/ 20 октября 2010

Не можете ли вы отправить им ссылку FTP?Зачем вам PHP?

ftp: //ftp12.freebsd.org/pub/FreeBSD/ls-lR.gz

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