Der Inhalt dieses Artikels besteht darin, den von PHP + SFTP implementierten Datei-Upload und -Download mitzuteilen. Er hat einen gewissen Referenzwert.
Kürzlich entwickelte Projekte zur Zusammenarbeit mit Banken erfordern das Hoch- und Herunterladen von Dateien. Es gibt bestimmte Anforderungen an die Vertraulichkeit von Dateien, daher wird SFTP verwendet. Bei der tatsächlichen Entwicklung sind wir jedoch auf viele Probleme gestoßen. Die online gefundenen Tutorials und Fälle konnten nicht verwendet werden und wurden immer wieder kopiert. Nach ständigem Debuggen wurde schließlich der Datei-Upload und -Download von PHP realisiert. Es wird jetzt nur zu Referenzzwecken aufgezeichnet.
1. Überprüfen Sie die PHP-Version und laden Sie die entsprechende ssh2-Erweiterung herunter: https://windows.php.net/downloads/pecl/releases/ssh2/. Für eine spezifische Installation suchen Sie bitte online. phpinfo() prüft, ob es installiert ist. Nach erfolgreicher Installation können Sie ssh2 sehen.
2. Die im Internet bereitgestellten Upload- und Download-Methoden (ich glaube, Sie müssen sie gesehen haben)
<·?·php //php环境中必须有ssh ·$strServer = "服务器ip";//服务器ip ·$strServerPort = "22";//端口号 ·$strServerUsername = "***";//用户名 ·$strServerPassword = "***";//密码 ·//connect to server ·$resConnection = ssh2_connect($strServer, $strServerPort); ·if(ssh2_auth_password($resConnection, $strServerUsername, $strServerPassword)){ ·//初始化 SFTP ·$resSFTP = ssh2_sftp($resConnection); ·echo $resSFTP; ·//下载文件 ·//1 ·$filename = 'D:\down'.time().'.txt'; ·$opts = array( ·'http'=>array( ·'method'=>"GET", ·'timeout'=>60, ·) ·); ·$context = stream_context_create($opts); ·$strData = ·file_get_contents("ssh2.sftp://{$resSFTP}/var/testfile/abc.txt", false, $context); ·file_put_contents($filename, $strData); ·//2 也可以用copy() ·//if(!copy("ssh2.sftp://{$resSFTP}/dfr508/WUN/ikea-logo.jpg", $filename)) { ·// echo 'download failed'; ·//} ·//-------------------------------------------------------------------------------------------------------------- ·//上传文件 ·//1 ·//file_put_contents("ssh2.sftp://{$resSFTP}/var/testfile/456.txt", 'D:/ab.txt'); ·//2也可以用copy() ·if(!copy("d:/ab.txt", "ssh2.sftp://{$resSFTP}/var/testfile/up".time().".txt")) { ·echo 'upload failed'; ·} ·} else { ·echo "无法在服务器进行身份验证"; ·} ·?·>
$strServer = "";//服务器ip $strServerPort = "";//端口号 $strServerUsername = "";//用户名 $strServerPassword = "";//密码 //1连接服务器 $resConnection = ssh2_connect($strServer, $strServerPort); //2验证连 if(ssh2_auth_password($resConnection, $strServerUsername, $strServerPassword)){ //3初始化 SFTP $resSFTP = ssh2_sftp($resConnection);
"ssh2.sftp://{$resSFTP}/var/testfile/abc.txt"
copy, file_get_content, curl
müssen zum Hochladen verwendet werden ssh2_scp_send
ssh2_scp_recv Herunterladen
Das obige ist der detaillierte Inhalt vonPHP+SFTP implementiert das Hoch- und Herunterladen von Dateien. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!