php ftp_put上傳失敗是因為伺服器放在防火牆後面,其解決方法就是開啟FTP被動模式,程式碼如「ftp_put($conn,"target.rar","local.rar",FTP_BINARY,0 );」。
推薦:《PHP視訊教學》
客戶端在防火牆之後,php利用ftp上傳檔案時候ftp_put失敗
<?php $conn = ftp_connect("ftp.bacysoft.cn") or die("Could not connect"); ftp_login($conn,"test","test1234"); ftp_put($conn,"target.rar","local.rar",FTP_BINARY,0); ftp_close($conn); echo "done"; ?>
程式碼說明:
本程式碼透過PHP伺服器在後台使用FTP 協定將本機檔案「local.rar」 上傳到遠端FTP 檔案伺服器上,並儲存為「target.rar 」。即PHP 伺服器以FTP Client 上傳檔案到FTP Server...
以上程式碼執行後出錯,錯誤提示如下:
Warning: ftp_put() [function.ftp-put]: Opening BINARY mode data connection for target.rar. in E:\wwwroot\bacysoft\wwwroot\test\temp.php on line 4 Fatal error: Maximum execution time of 60 seconds exceeded in E:\wwwroot\bacysoft\wwwroot\test\temp.php on line 5
出錯原因:
伺服器一般都是放在防火牆後面,因此FTP 用戶端程式如果需要穿越防火牆,需要開啟被動模式,否則執行任何ftp 命令都沒有回應,直到出現「最大執行時間逾時」 的致命錯誤,導致程式終止執行...
ftp_pasv($conn, true);
解決方法:開啟FTP 被動模式,正確程式碼如下:
<?php $conn = ftp_connect("ftp.bacysoft.cn") or die("Could not connect"); ftp_login($conn,"test","test1234"); ftp_pasv($conn, true); ftp_put($conn,"target.rar","local.rar",FTP_BINARY,0); ftp_close($conn); echo "done"; ?>
以上是php ftp_put 上傳失敗怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!