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」に変更すると、すべて正常に動作します!
何か案は?ありがとうございました!