[問題] 在FTP下載檔案~失敗了?找不到PORT號?

作者: iori9100 (呵呵)   2017-08-02 23:33:01
這個方法也是我參考某些前輩來修改的~
但只要執行下載
java.io.IOException: Unable to connect to server: Unable to configure data
port
at libcore.net.url.FtpURLConnection.connect(FtpURLConnection.java:203)
at
com.example.user.ftpupload.MainActivity$DownloadTask.
doInBackground(MainActivity.java:172)
connection.connect();這行會掛 可是我查了相關的實作~
我在URL那邊的網址字串是可以的 但一直連不進去~
請問有大大可以指正我一下嗎? 因為查了不少文章 都是跟HTTP的範例有關的
還是我FTP寫的網址是錯誤的呢?? 感恩
private void StartDownload(){
String url="ftp://user:[email protected]:21/spanish.pdf";
new DownloadTask().execute(url);
}
@Override
@Deprecated
protected Dialog onCreateDialog(int id){
switch (id){
case DIALOG_DOWNLOAD_PROGRESS:
mProgressDialog = new ProgressDialog(this);
mProgressDialog.setMessage("Downloading...");
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
mProgressDialog.setCancelable(true);
mProgressDialog.show();
return mProgressDialog;
default:
return null;
}
}
class DownloadTask extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
showDialog(DIALOG_DOWNLOAD_PROGRESS);
}
@Override
protected String doInBackground(String... params) {
int count;
try {
URL url= new URL(params[0]);
URLConnection connection = url.openConnection();
@@@@@@@@@@@@@@@ connection.connect();掛在這行@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
int filelength=connection.getContentLength();
Log.d("長度", "doInBackground: "+filelength);
InputStream input= new BufferedInputStream(url.openStream());
OutputStream output= new
FileOutputStream(android.os.Environment.getExternalStorageDirectory().getAbsolutePath()+"/Download/lesson");
byte data[]= new byte[1024];
int total=0;
while((count=input.read(data))!=-1) {
total += count;
publishProgress("" + (int) ((total * 100) / filelength));
output.write(data, 0, count);
}
output.flush();
output.close();
input.close();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String result) {
dismissDialog(DIALOG_DOWNLOAD_PROGRESS);
}
@Override
protected void onProgressUpdate(String... values) {
Log.d("HEHEHEHE", values[0]);
mProgressDialog.setProgress(Integer.parseInt(values[0]));
}
}
作者: cf1064 (蚵仔)   2017-08-03 00:54:00
在. connect之前,params[0]有值?
作者: lovelycateye (我還想要更多力量)   2017-08-03 11:50:00
你手機是用4G連還是跟你電腦同個WiFi?那看起來是內網IP,先確認你是連到跟電腦相同WiFi吧
作者: iori9100 (呵呵)   2017-08-03 17:56:00
給上面前輩,我是用模擬器的,網路應該是在同網域,另外param[0]得到的值是 執行方法宣告的網址
作者: ssccg (23)   2017-08-03 18:09:00
用實機試試看
作者: lovelycateye (我還想要更多力量)   2017-08-04 00:42:00
我用 Unable to configure data port 還不少啊第一個結果的你確定有試過?https://goo.gl/nTxU3w
作者: iori9100 (呵呵)   2017-08-04 13:17:00
其實下載檔案OK 但我是不知道怎麼把過程丟給進度條..@@類似用上面那個網址 先把PORT號那些參數都設定好就可以

Links booklink

Contact Us: admin [ a t ] ucptt.com