首頁 > 後端開發 > PHP問題 > php ftp_put 上傳失敗怎麼辦

php ftp_put 上傳失敗怎麼辦

藏色散人
發布: 2023-03-04 22:44:01
原創
3448 人瀏覽過

php ftp_put上傳失敗是因為伺服器放在防火牆後面,其解決方法就是開啟FTP被動模式,程式碼如「ftp_put($conn,"target.rar","local.rar",FTP_BINARY,0 );」。

php ftp_put 上傳失敗怎麼辦

推薦:《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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板