質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
FTP

FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。

Q&A

2回答

1432閲覧

FTP

ro_seberry

総合スコア11

FTP

FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。

0グッド

0クリップ

投稿2015/12/07 00:42

編集2015/12/07 00:43

FTPにてサーバーから動画データーをダウンロードしようとしていますが、
実際ダウンロードサイズは1MByteですが、366kByteしかダウンロードできません
String path = "/data/data/" + getPackageName() + "/files/";
new File(path).mkdir();
// 受信
fos = new FileOutputStream(path + "cofee.3gp");
if (!ftp.retrieveFile("/www/htdocs/gijyutu_test/cofee.3gp", fos)) {
return "ファイルの受信に失敗しました";
}

良い方法があればご教授お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

argius

2015/12/07 08:03 編集

質問に以下の情報を付けた方が、回答が得られやすいです。 ・タグにJavaを付けてください。 ・おそらくApache Commons NetのFTPClientをお使いだと思いますが、質問にもそれを書いてください。お使いのCommons Netライブラリーのバージョンも分かれば書いてください。 ・コードを書くときは、```lang-java の行と、 ```の行ではさんでください。 ・コードが部分的すぎて参考になりません。もう少し詳細が分かる範囲で書いてください。
argius

2015/12/07 08:07

ホスト名やパスワードは書かないようにご注意ください。
guest

回答2

0

とりあえず切り分けが必要だと思いますので
windows から対象のサーバーにFTPで接続してダウンロード可能か
を確認してみてはどうでしょうか?

また、android と言うことですので以下のようなFTPアプリを使用して
ダウンロード可能か確認してみてはどうでしょうか?
https://play.google.com/store/apps/details?id=lysesoft.andftp&hl=ja

両方共に取得可能であれば、プログラムの可能性があります。
windowsはOKでandroidでNG なのであれば、android の設定かなと思います。

投稿2015/12/09 01:39

trick

総合スコア366

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ro_seberry

2015/12/10 21:39

ありがとうございます。 ダウンロードは可能ですが、どうもプログラムのようです。 原因がわかりません
guest

0

setFileTypeは、BINARY_FILE_TYPEですか?
NATなど利用している場合、enterLocalPassiveModeである必要があると思います。
取得できたファイルの中身がどのようなものか、や、こういうクラス(例えば、import java.io.FileOutputStream;)を使っていますなどの情報があると、他の皆さまも、もう少しお答えしやすいかもしれません。

投稿2015/12/07 08:45

Ken.sakanakana

総合スコア1768

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ro_seberry

2015/12/07 22:17

ご指導ありがとうございます。  import java.io.FileOutputStream;を使用しています。  setFileTypeは指定してません。追記したほうがよろしいでしょうか。  データーは3gp形式の動画データーです。  ほかにサンプルプログラムがあれば教えてください。  よろしくお願いします。  
ro_seberry

2015/12/07 22:29

申し訳ありません。 // ファイル種別:アスキーモード ftp.setFileType(FTP.ASCII_FILE_TYPE); // PASVモード ftp.enterLocalPassiveMode(); // タイムアウト:10秒 ftp.setDataTimeout(10000); // 受信元のディレクトリを作成 を追記します。
trick

2015/12/07 23:57

ftp.setFileType(FTP.ASCII_FILE_TYPE); ここを ftp.setFileType(FTP.BINARY_FILE_TYPE); これに変更してもだめですか? タイムアウトはもう少し長くしてみてはどうですか
ro_seberry

2015/12/08 05:17

上記アドバイスありがとうございました。 確認しましたがまったく改善されませんでした(タイムアウトは50秒にしてみました)  ちなみに ①  "/data/data/" + getPackageName() + "/files/";    に保存できる容量の制限はあるのでしょうか。 ②①の容量確認できる方法はあるのでしょうか ③ftp.retrieveFileでコピーできる容量の制限等あるのでしょうか。 知っているかたいたらご教授お願いします。
trick

2015/12/08 05:36

windowsであれば、コマンドプロンプトを使用して FTP接続し同様のファイルを取得する事は出来ますかね?
Ken.sakanakana

2015/12/08 14:13

trick様フォローありがとうございます! 別の回答を立て直されては如何でしょうか? 状況の切り分けが必要ということですね。 ■ プログラムの問題なのかを切り分けるため、FTPコマンドやFTPツールでファイルが取得できるかを確認する。 →取得できなかった場合 ・ PCのFireWallの設定を確認する。 ・ FTPサーバ側の設定(パーミションなど) その他、設定を見直して取得できるまで、■に戻る →取得できた場合 ・プログラムの可能性が高いです 私が確認した方法 ・Windowsの場合 http://commons.apache.org/proper/commons-net/download_net.html の、commons-net-3.4-bin.zip をダウンロードしてきて展開 % cd commons-net\example\ftp % javac -cp ..\..\commons-net-3.4.jar FTPClientExample.java % java -jar ..\..\commons-net-examples-3.4.jar FTPClientExample 192.168.1.1 testuser testpasswd remoteFile localFile これで、大きなファイルもダウンロードできているようです。 このサンプルを参考に作成してみては如何でしょうか。
ro_seberry

2015/12/09 01:24

android なのでテストできないです。
ro_seberry

2015/12/15 05:19

別方法で検討します
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問