HttpClientでの日本語ファイルのアップロード
http://d.hatena.ne.jp/w650/20080318/p2
Commons HttpClientでのmultipart/form-dataを使ったファイルのアップロードで、日本語ファイル名の場合ですが、結論としては以下の様にURLエンコードすればOKでした(例ではEUC-JPです)。
File file = new File("テスト.txt"); Part part = new FilePart("パラメータ名", URLEncoder.encode(file.getName(), "euc-jp"), file, null, "euc-jp");
FilePartの引数の2番目がファイル名です。4番目はContent-typeでデフォルトで"application/octet-stream"になり、5番目はcharsetでデフォルトでは"ISO-8859-1"です。
補足:
これだとサーバサイドでURLエンコードされたファイル名をデコードしないとだめでした。ブラウザからアップロードする場合には何もしなくてもよいので、URLエンコードしないでもよい方法があると思うのですが。。