Я столкнулся со многими PHP-скриптами для веб-FTP-клиентов. Мне нужно реализовать SFTP-клиент в качестве веб-приложения в PHP. Поддерживает ли PHP fot SFTP? Я не мог найти образцы. Может ли кто-нибудь помочь мне с этим?Как SFTP с PHP?
ответ
PHP имеет обтекатели потока ssh2 (по умолчанию отключен), поэтому вы можете использовать соединения sftp с любой функцией, которая поддерживает обтекатели потоков, используя ssh2.sftp://
для протокола, например.
file_get_contents('ssh2.sftp://user:[email protected]:22/path/to/filename');
или - когда и с помощью ssh2 extension
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);
$stream = fopen("ssh2.sftp://$sftp/path/to/file", 'r');
См http://php.net/manual/en/wrappers.ssh2.php
На стороне записки, есть также довольно куча вопросов по этой теме уже:
Функции ssh2 не очень хорошие. Трудно использовать и еще труднее установить, использование их гарантирует, что ваш код имеет нулевую мобильность. Моя рекомендация будет заключаться в использовании phpseclib, a pure PHP SFTP implementation.
поддерживает только SFTP v3 – Blacksonic
@indranama, отметили бы это как правильный ответ, чтобы будущие пользователи не могли читать комментарии, чтобы найти, какие из них лучше всего подходят для вас? –
Я выполнил полный переход и написал класс, который создает пакетный файл, а затем вызывает sftp
по вызову system
. Не самый приятный (или самый быстрый) способ сделать это, но он работает для того, что мне нужно, и не требовал установки дополнительных библиотек или расширений в PHP.
Может быть путем, если вы не хотите использовать ssh2
расширения
Связанная ветка, которая помогла мне: https://groups.google.com/forum/#!topic/comp.security.ssh/_55TdDdUTCw – Quamis
Я обнаружил, что «phpseclib» должен помочь вам с этим (SFTP и многими другими функциями). http://phpseclib.sourceforge.net/
поместить файл на сервер, просто позвоните по телефону (Пример кода из http://phpseclib.sourceforge.net/sftp/examples.html#put)
<?php
include('Net/SFTP.php');
$sftp = new Net_SFTP('www.domain.tld');
if (!$sftp->login('username', 'password')) {
exit('Login Failed');
}
// puts a three-byte file named filename.remote on the SFTP server
$sftp->put('filename.remote', 'xxx');
// puts an x-byte file named filename.remote on the SFTP server,
// where x is the size of filename.local
$sftp->put('filename.remote', 'filename.local', NET_SFTP_LOCAL_FILE);
Git repo находится здесь: https://github.com/phpseclib/phpseclib/tree/master/phpseclib – relipse
Если вы можете использовать ssh2 расширение для PHP я предлагаю проверить это:
Monsta FTP предлагает SFTP/SCP, а также обычный FTP через веб-клиент, который можно загрузить бесплатно. (отказ от ответственности: я участвую в этом проекте)
Как это соотносится? является ли Monsta библиотекой PHP для использования разработчиками? – Brian
- 1. Как SFTP с PHP
- 2. PHP SFTP с прокси
- 3. Использование sftp с shell_exec php
- 4. Как загрузить SFTP-файлы с PHP
- 5. PHP SFTP/SSH transfer
- 6. SFTP изнутри PHP
- 7. Загрузить файл с sftp и php
- 8. PHP-загрузка с удаленного сервера через sftp
- 9. PHP sftp + fopen по сравнению с ssh2_scp_send
- 10. Подключение PHP к SFTP с использованием phpseclib
- 11. PHP SFTP-команды с постоянным подключением
- 12. PHP excute Python SFTP-скрипт
- 13. Неблокируемая загрузка SFTP/FTPS с PHP?
- 14. Как загрузить файл с SFTP-сервера с помощью PHP
- 15. Как SFTP получить файл с использованием cURL с PHP
- 16. php sftp файл или папка
- 17. php отправить файл в sftp
- 18. Perl sftp загружает с Net :: SFTP :: Foreign
- 19. Загрузка файла SFTP через PHP
- 20. Как связаться с сервером SFTP
- 21. Как загрузить каталог с sftp
- 22. Как написать файл на sftp-сервере с PHP?
- 23. Проблемы с Perl SFTP с использованием Net :: SFTP :: Foreign
- 24. Railo с SFTP
- 25. Python - SFTP с использованием Paramiko с помощью PHP
- 26. Передача большого файла через SFTP в PHP
- 27. Как изменить SFTP симлинк
- 28. php sftp using ssh2 corruptting pdf files
- 29. SFTP Прогресс с SSH.NET
- 30. Проблемы с SFTP Python
file_get_contents и file_put_contents оба работают потрясающе. никогда не знал, что они работали с sftp, и это намного проще, чем использование встроенного sftp-материала. Благодаря! – jbrahy
Даже при использовании file_get_contents() вам все равно нужно расширение ssh2 (afaik). – StanE