リモートのサーバから、ローカルPCに .wavファイルをダウンロードするテストを行いました。
下記の参考サイトと全く同じ手順でコードを書きました。
http://www.syboos.jp/java/doc/jakarta-commons-net-ftpclient.html
リモートサーバからローカルPCに .wavファイルのダウンロードは完了するのですが、
それをWindowsMediaPlayerで再生してみると、下記のエラーウィンドウが出ます。
『ファイルを再生できません。プレーヤーがそのファイルの種類をサポートしていないか、そのファイルの圧縮に使用したコーデックをサポートしていない可能性があります。』
Windowsのコマンドプロンプトから ftp.exeでログインし、同じ.wavファイルをgetコマンドでローカルPCにダウンロードした場合、
そのファイルは WindowsMediaPlayerで再生可能です。
org.apache.commons.net.ftpライブラリでは、他に必要な手順があるのでしょうか?
どなたか、ご教授の方お願いします。
サーバOS:WindowsServer2003R2Enterprise 32bit
ローカルPCのOS:Vista Home Premium
JavaJDK:1.6.0_21
org.apache.commons.net:2.2
ご質問にあったJavaソースのmainメソッドに下記★印の2行を追加してみてください。
public static void main(String[] args) { try { //ファイルアップロード FileInputStream fis = new FileInputStream("c:\testftp.txt"); FtpClientHelper.sendFile("localhost", FTP_PORT, "testuser", "testpassword", "remoteFilename", fis); //ファイルダウンロード FileOutputStream fos = new FileOutputStream("localfile"); FtpClientHelper.retrieveFile("localhost", FTP_PORT, "testuser", "testpassword", "remoteFilename", fos); fos.flush(); //★追加 fos.close(); //★追加 } catch (Exception e) { e.printStackTrace(); } }
参考「バイナリファイルの入出力」
public static void main(String[] args) {
try {
//ファイルアップロード
FileInputStream fis = new FileInputStream("c:\testftp.txt");
FtpClientHelper.sendFile("localhost", FTP_PORT, "testuser", "testpassword",
"remoteFilename", fis);
//ファイルダウンロード
FileOutputStream fos = new FileOutputStream("localfile");
FtpClientHelper.retrieveFile("localhost", FTP_PORT, "testuser", "testpassword",
"remoteFilename", fos);
fos.flush(); //★追加
fos.close(); //★追加
} catch (Exception e) {
e.printStackTrace();
}
やくにたちますか?