1

Timo Hahn の記事で説明されているように、DB BLOB フィールドへのファイルのアップロードを実現しました。

http://tompeez.wordpress.com/tag/afinputfile

コードフラグメント:

// The event give access to an Uploade dFile which contains data about the file and its content

UploadedFile file = (UploadedFile) valueChangeEvent.getNewValue();

// Get the original file name

String fileName = file.getFilename();

すべて正常に動作しますが、ファイル名のエンコードに問題があります。getFilename() メソッドを使用してファイル名を取得しようとしましたが、ラテン文字セットでのみ正常に動作しますが、ファイル名にロシア語文字セットが含まれるファイルでは失敗します。

元のファイル名: my_file.doc -> my_file.doc

元のファイル名: заявки.png -> 70O2:8.png

どうすればこの問題を解決できますか?

前もって感謝します!

UPD 27.09.2012:

面白いバグを見つけました。上記のコードのファイル変数をウォッチに追加すると、 _encodingプロパティが「utf8」に等しいことがわかります。このプロパティを「null」に変更すると、すべて正常に動作します!

何か案は?ありがとうございました!

4

2 に答える 2

0

これを試してください:プロジェクトのプロパティを開き、コンパイラノードを選択して、選択した文字エンコードを確認します。あなたの場合はutf-8である必要があります。

于 2012-09-23T09:03:25.143 に答える
0

コンパイラーと JSF ページの上部に設定したエンコーディングを確認してください。

于 2012-09-21T18:03:12.313 に答える