[英]Download a file from an FTP using Curl with PHP
我正在嘗試使用Curl從FTP服務器下載文件。 我可以將URL粘貼到瀏覽器中,然后下載就可以了。 問題是使用Curl和PHP,我相信FTP服務器正在執行重定向,而Curl將不會跟隨。 我收到錯誤消息,“服務器拒絕您更改到給定目錄”。
編輯:我在代碼中有%2f並將其刪除。 那是來自先前的測試。
我的代碼是:
$curl = curl_init();
$file = fopen("temp.zip", 'w');
curl_setopt($curl, CURLOPT_URL, "ftp://idx.living.net/idx_fl_ftp_down/idx_naples_dn/naples_data.zip");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_FILE, $file);
curl_setopt($curl, CURLOPT_FTPSSLAUTH, CURLFTPAUTH_SSL);
curl_setopt($curl, CURLOPT_USERPWD, "myusername:mypassword");
curl_exec($curl);
echo curl_error($curl);
有什么方法可以強制Curl像下載文件時的瀏覽器一樣運行?
我知道這不能以應有的方式(使用curl)回答您的問題。 但是,這里有一個非curl代碼,可以使用php將文件下載到ftp服務器上。
$local_file = 'output.rar';
$server_file = '/somedir/1/bar/foo/somearchive.rar';
$ftp_user_name='some_login';
$ftp_user_pass='Password';
$ftp_server='HOST';
// set up basic connection
$conn_id = ftp_ssl_connect($ftp_server);
// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
/* uncomment if you need to change directories
if (ftp_chdir($conn_id, "<directory>")) {
echo "Current directory is now: " . ftp_pwd($conn_id) . "\n";
} else {
echo "Couldn't change directory\n";
}
*/
// try to download $server_file and save to $local_file
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
echo "Successfully written to $local_file\n";
} else {
echo "There was a problem\n";
}
// close the connection
ftp_close($conn_id);
筆記:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.