skillup

技術ブログ

Java

Fileのアップロード

投稿日:2015年7月11日 更新日:

業務でCSVのアップロードを行っていますが、ファイルになりますと当然文字列ではなく、バイナリ形式のデータが必要になります。

アップロード自体の処理を書いていなかったので、その扱い方についてちょっと書いておきます。

fomタグ

まずHTMLの場合ですが、テキストだけでなく、ファイル(つまりはバイナリデータ)を渡す場合には、プロパティを別途セットする必要があります。

enctype="multipart/form-data" をセットするだけです。

この部分はJavaでも同じです。というかHTMLの構造なので変わるわけないですね・・

またinput type=”file”の代わりにh:inputFileを使います。

ManagedBean側での処理

ManagedBean側での処理ですが、こちらも文字列ではないので特殊なオブジェクトをセットする必要があります。

これはサーブレットのPartというクラスを使います。

このように定義しておけばあとはPartオブジェクトのメソッドが使え、

  • ファイル名の取得
  • サイズの取得
  • 実際の内部データの取り出し

などを行うことができます。

リファレンス・リンク

partオブジェクトのリファレンスは↓こちらです。

http://docs.oracle.com/javaee/7/api/javax/servlet/http/Part.html

その他参考にしたリンクはこちらです。

JSF 2.2 で待ちに待ったFileUploadを試す

Servlet 3.0 File Upload 機能

[Java] File Uploads Using JSF 2.2 and Java EE 7

バグ

なお、Pretty-facesを使っているとファイルを伴った繊維の時、マッピングが正常におこなわれませんでした。

原因は只今調査中です。

-Java
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

JavaでのSQLの書き方

ちょっと小ネタです。 通常SQLを記述する場合、縦に分けて書くのが見た目にも見やすく、保守性も高いです。 例として

と書くよりは、 [ …

no image

新アプリの本番環境デプロイについて

新しく作ったWEBアプリを本番配置しようとしたんですが、何度もやっているはずの処理がいざやろうとするといろいろと手間取ってしまい、1時間近くかかりました。 容量悪いなーと思いつつ、こういった行為はなる …

no image

日付けのメソッド

どのプログラムでも必須となる日付け処理。 言語が違うといろいろと面倒です。 とりあえず頻出のものを整理したいと思います。 Contents1 現在時刻の出力2 日付けの設定・取得3 日付けの整形4 文 …

no image

日付がらみの処理に関して(MySQL&Java)

MySQL触りだして3年ぐらいたつんですがいまだに整理できないことが多いです。(特に日付がらみ) ちょっとJavaのネタと合わせて整理しておこうかなーと思います。 Contents1 MySQLの日付 …

no image

GlassFishとTomcatの違い

JavaEEの開発を始めてからは基本的にサーバーとしてGlassFishを使っています。 一般的なJavaのサーバーというとTomcatが有名ではないでしょうか。少なくとも私はTomcatしか知りませ …

アーカイブ