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

リフレクション

前回のエントリーでは動的にクラスを使いまわす方法について書いたのですが、同様にリフレクション(動的にインスタンスを生成する方法)という技術についても学びました。 社長いわく黒魔術みたいなものといってい …

no image

ポリモフィズム(多態性)とは

Javaでオブジェクト指向の考え方の重要な考え方であるポリモフィズムについて。 Contents1 ポリモフィズムとは?2 ソース ポリモフィズムとは? 日常的に使っていながらいざ説明するとなると困り …

no image

JPAでのリレーション(アノテーション使用)

JPAでリレーションを管理するとき、最初はアノテーションでやろうとしたんですが、結局やり方がわからずコンストラクタ式をかいて対処してました。 JPAでのリレーションに関して 外部キー制約があるやり方は …

no image

列挙型Enumについて

列挙型のクラスであるEnumについてのメモです。 ちなみにEnumの読み方はイナムまたはイニュームだそうです。 Contents1 列挙型とは?1.1 基本の使い方1.2 key=value的な使い方 …

no image

Javaのarraycopy

最近あまりJava自体には触っていないですが、資格の勉強をコツコツとすすめていることもあり、新たな発見もあります。 8ヶ月ぐらいJava書いていますが、arraycopyというメソッドをはじめてしりま …

アーカイブ