2013-03-19 46 views
0

空間,我無法用具有拍拍空間的URLConnection下載從FTP服務器上文件的URLConnection從FTP服務器上下載文件無法使用具有路徑

String s = "ftp://username:[email protected]:21/AAB BBC/hhhh 0001.jpg"; 

URL U =新的URL(S); URLConnection uc = u.openConnection(); BufferedOutputStream bos = new BufferedOutputStream(uc.getOutputStream());

不想要FTP客戶端解決方案。

使用URLencoder得到550錯誤文件未找到。

感謝, 拉夫

回答

0

你使用Apache公共圖書館?如果是這樣,使用此代碼

try { 
    FileOutputStream desFileStream = new FileOutputStream(desFilePath);; 
    status = FTP_object.retrieveFile(srcFilePath, desFileStream); 
    desFileStream.close(); 

    return status; 
} catch (Exception e) { 
    Log.d(TAG, "download failed"); 
} 
0

你不應該在你的URL本身空間每RFC1738 2.2節運行它通過URL編碼方法對其進行編碼:

String s = "ftp://username:[email protected]:21/AAB BBC/hhhh 0001.jpg"; 
String encodedUrl = URLEncoder.encode(s,"UTF-8"); 

我知道你說你已經在進行編碼,但是返回了550錯誤。我沒有看到編碼,所以我只是提到它應該是需要的。

我真的會嘗試從瀏覽器中,看看你是否可以到它。我也會將它正在使用的URL轉儲出來,然後從瀏覽器(或wget,curl,無論什麼方便)中嘗試。 550被列爲「許可」問題,而不是文件未找到,所以我有點驚訝,但這可能是短代碼,並出現一個錯誤,以防止人們圍繞測試用戶/密碼組合。很難說。

我給你的另一個問題是你提到你不想要客戶端解決方案,但是你似乎在編寫客戶端而不是服務器。您將要進入端口21,這是服務器的默認FTP端口。

我會嘗試編碼的各種組合,看看如果你可能沒有編碼所有東西......你應該編碼url路徑。密碼中是否有任何時髦的字符?

直接從瀏覽器進行測試會給你很多見解。