- PR -

アップロードしたファイル名

1
投稿者投稿内容
ぶぶ
会議室デビュー日: 2005/10/10
投稿数: 15
投稿日時: 2006-08-09 20:59
OS:Solaris9(Struts使用)

JAVA初心者です。宜しくお願いします。

アップロードしたファイルがエクセルのファイルかチェックするロジックで
「getFileName(file)」を使用しています。

if(! StringOperate.getFileExt(file.getFileName()).toUpperCase().equals("XLS")) {

}

(StringOperate.getFileExtは拡張子取得する部品です)

エクセルファイルなのに
「修」・「松」の字がファイル名に含まれるとチェックでエラーとなります。

※「修)」ではエラーになりません。
※Windows環境でもエラーとなりません。
※2バイト目に0x5Cを持つ文字である「表」をファイル名に含んでもエラーとなりません。

文字コードの問題かなって思っているのですが。。。

「getFileName(file)」は2バイト目に0x5Cを持つ文字以外にも文字化けすることは
有るのでしょうか?
その場合、どのようなパターンのファイル名が文字化けするのでしょうか?







  
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2006-08-09 22:32
「チェックでエラー」とおっしゃっていますが、
具体的にどんな例外が発生するのでしょうか?
発生している例外を見て対処するのが王道です。
例外が出る〜という類の質問の際は例外のスタックトレースを提示しましょう。

StringOperate.getFileExt(file.getFileName())とやらが正しく
拡張子を切り出せているという前提で、大文字小文字を区別なく比較するなら
equalsIgnoreCase()で比較したほうがよいかも。
toUpperCase()は言語のロケールが絡むようなので環境により
違いが出るのかもしれませんね。
ぶぶ
会議室デビュー日: 2005/10/10
投稿数: 15
投稿日時: 2006-08-10 08:51
nagiseさんありがとうございます。

説明不足ですみません。

「チェックでエラー」とは
チェックロジック(IF文)でエラー(条件に該当する)となってしまう言うことです。

でもって、「OS:Solaris9(Struts使用)」 の環境は、
お客さんの環境で、トレース・デバッグできないんです。

「equalsIgnoreCase()」を試してみます。

ありがとうございます。


1

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