HotReboot![]() | FTP и браузер1680298240 Здравствуйте. Может кто натолкнёт на мысль как скачать из списка файл из браузера.
Спасибо.
P.S. ftp с логином и паролём. |
para_bellum![]() | 1680298384 Браузеры и сами могут подключаться по FTP. Но если вам нужен посредник, то просто сделайте подобные ссылки:
/?download=имя_файла
При клике по такой ссылке получайте имя файла из запроса:
влепить жирный лайк
Потом скачивайте его к себе на сервер (естественно, предварительно проводя валидацию пришедшего имени):
https://www.php.net/manual/ru/function.ftp-get.php
И отдавайте клиенту.![]() |
HotReboot![]() | 1680298592 para_bellum, «Браузеры и сами могут подключаться по FTP.»
Уже нет (https://chromestatus.com/feature/6246151319715840, https://blog.mozilla.org/addons/2020/04/13/what-to-expect-for-the-upcoming-deprecation-of-ftp-in-firefox/)
«Потом скачивайте его к себе на сервер»
Так и было задумано, но не нравится им, что файлы сначала на сервере качаются. Типа ожидание ибо файлы по гигу. Сначала на сервер, потом с сервера. Но видимо придётся мириться или отговаривать от ftp. влепить жирный лайк![]() |
para_bellum![]() | 1680298770 HotReboot, «Уже нет»
Упустил момент исключения этой функциональности, значит. Пару раз всего пользовался FTP-подключениями через браузер.
Если достаточно большие файлы, то не понимаю их требования. Если они хотят, чтобы разные пользователи могли скачать, пусть организуют доступ к файлам по HTTP. Если только сами будут иметь доступ к файлам, пусть FTP-клиент ставят.
Можно ещё попробовать данные, получаемые по FTP, передавать сразу в выходной поток:
влепить жирный лайк
На случай обрыва связи нужно будет добавить возможность продолжения скачивания файла с некоторого байта, передавая ftp_fget аргумент offset.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests
Ещё вроде можно прямо в Nginx настроить прокси между HTTP и FTP, чтобы не прогонять гигабайты через PHP.![]() |