- PR -

Solaris8上で作成したファイル名が文字化け

1
投稿者投稿内容
I_wish_global_peace.
会議室デビュー日: 2007/09/09
投稿数: 2
投稿日時: 2007-09-09 13:48
こんにちは。

Webサーバ上(Solaris8,Tomcat)で作成した日本語のファイル名のファイルを
windows,IE6より起動したアプレットでFTPダウンロードしたいのですが、
文字化けするせいかダウンロードできません。
どのようにすればよいでしょうか?
ファイル名をWindowsのMS932?のエンコードに合わして作成
すればよいのでしょうか?

※流れ
@クライアントからリクエストをWebサーバに投げる。
AWebサーバ側で日本語のファイル名のファイルを作成する。
 作成したディレクトリがそのままFTPのディレクトリとなる。
 (WebサーバとFTPサーバが同じホスト上にある。)
Bクライアントにレスポンスを返す。
Cクライアントがアプレットを起動して対象ファイルをダウンロードする。

---------------------------------------------------------------------------
Aサーバ側のソースは以下のような感じ
 (例で書いたので不正確です。)
 ※Solaris8上で「/work/ファイル名.txt」を作成する。
  /workはFTPのディレクトリとなる。

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class createFile extends HttpServlet {

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException{

// ファイル出力ストリームを取得
FileOutputStream fw =
new FileOutputStream ("/work/ファイル名.txt");
OutputStreamWriter os =
new OutputStreamWriter(fw);

String str = "datadatadata";
os.write(str);

os.close();
fw.close();
}
}
---------------------------------------------------------------------------
Cアプレットのソースは以下のような感じ
 (例で書いたので不正確です。)
 ※/workからファイル名.txtをダウンロードする。
 ※FTPクライアントとしてcommons-net-1.4.1.jarを使用

import java.awt.*;
import java.applet.*;

import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;

public class downloadApplet extends Applet {
public void init() {

FTPClient fc = new FTPClient();
fc.connect("host");
fc.login("id", "pass");
fc.changeWorkingDirectory("/work");
String [] fnames = fc.listNames("ファイル名.txt");//ワイルドカードでも使用可能

for(int i=0; i<fnames.length; i++){

fc.setFileType(FTP.BINARY_FILE_TYPE);

OutputStream os = new FileOutputStream("c:\\work\\" + fnames[i]);
fc.retrieveFile( fnames[i], os);

fileFTP.getBinaryFile(ftpclient, dir, fnames[i],localDir, fnames[i]);
}
fc.logout();
fc.disconnect();
}
}
---------------------------------------------------------------------------


nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-09-10 10:55
FTPクライアントの文字コード設定を変更してみては?
I_wish_global_peace.
会議室デビュー日: 2007/09/09
投稿数: 2
投稿日時: 2007-09-11 00:43
ありがとうございます。

FTPのエンコード設定や環境設定など
色々メソッドを試したのですがだめでした。

Solaris8上で作成したファイル名に対して、
URLEncoderを使用してエンコードして、
アプレット側でURLDecoderを使用してデコードする
方法をとりました。

以上
1

スキルアップ/キャリアアップ(JOB@IT)