2011-11-30 46 views
2

我有一個設置我應該在哪裏插入以下直接到我的瀏覽器:如何通過ftp與php抓取文件?

ftp://username:[email protected]/Archive/test.txt 

對該文件的訪問是理所當然的。不過,我似乎無法抓住這些文件,使用PHP,通過file_get_contents("$above_url") - 我收到以下錯誤:

[function.file-get-contents]: failed to open stream: FTP server reports 550 /Archive/test.txt: not a plain file.

最後,我希望能夠將文件保存到這個位置了。這顯然是我在這裏做錯了嗎?

回答

1

而不是使用file_get_contents()並希望PHP默認情況下做的一切正確,我建議您使用FTP extensionCURL extension來代替。它們允許您更好地控制與FTP訪問相關的所有設置。特別是考慮到您打算寫入FTP位置,您最好還是建立一個處理FTP的適當方式。

0

試試這個:

$c = curl_init("ftp://$username:[email protected]/$remote"); 
// $local is the location to store file on local client 
$fh = fopen($local, 'w') or die($php_errormsg); 
curl_setopt($c, CURLOPT_FILE, $fh); 
curl_exec($c); 
curl_close($c); 

你通過URL來使用curl_init()。由於URL以ftp://開頭,因此cURL知道使用FTP協議。不要單獨調用登錄到遠程服務器,而是直接將用戶名和密碼嵌入到URL中。接下來,您將設置位置以將文件存儲在服務器上。現在您打開一個名爲$ local的文件進行寫入,並將文件句柄傳遞給curl_setopt()作爲CURLOPT_FILE的值。當cURL傳輸文件時,它會自動寫入文件句柄。一旦配置好了所有東西,就調用curl_exec()來啓動事務,然後調用curl_close()來關閉連接。

(從java-samples.com)

+0

是的,我一直在做,捲曲一些測試,(部分)由以前的回答表明,它看起來很有希望。一個問題,我可以使用同樣簡單的方法將文件保存到遠程文件夾嗎? – thesunneversets

+0

@thesunneversets什麼是遠程文件夾? –