週末にJavaではまったところ2カ所

| | コメント(0)

Chen_20090208.jpg最初は単純に思えました。表示ページから、リンクをクリックして、添付資料をダウンロードする。

しかしよく仕様書を読むと、これをFTPで、しかもユーザとパスワードで接続して行う。

「ftp://username:password@server/directory」とかリンクを作ればできるけれど、これでは、パスワードが丸見え。

結局、FTPでテンポラリのファイルをダウンロードして、それをクライアントに返す、サーブレットを作ることに。

FTPはftp4jを使い問題なく、ダウンロードできる。

問題は、クライアント側でセーブするファイル名が日本語だと文字化けすること。

この問題の解決には、2段階のデバッグが必要でした。

まずは、URLEncodeされたファイル名を、サーブレットで正常に、getParameterで持って来れるか?

と、ファイル名をUTF-8で取得できたら、それを、「 response.setHeader( "Content-Disposition", "attachment; filename=\"" + cnv_filename + "\"" );」で正常に「cnv_filename」を設定できるか?

結論から言うと、前者は、「String filename=new String(request.getParameter("file_path").getBytes("8859_1"),"UTF-8");」、後者は、「 String cnv_filename = new String(org_filename.getBytes("SJIS"),"8859_1");
」で解決しました。

カテゴリ

コメントする


画像の中に見える文字を入力してください。

このブログ記事について

このページは、kawaguchiが2009年2月 9日 16:55に書いたブログ記事です。

ひとつ前のブログ記事は「最後のリスク」です。

次のブログ記事は「いろいろな近況」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.0

Twitter