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

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

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

no image

例外処理について その2

以前、「例外処理について」で例外処理について記述をしたんですが、漠然としていたのともう1回まとめなおしたかったため、メモしておきます。 Contents1 例外とは?2 例外のクラス分け2.1 Thr …

no image

glassfishとDB接続 ~CUI操作~

JavaEEではDBを使うときにglassfish内で設定が必要です。 基本的にはGlassFishでDB接続などのようにブラウザで管理画面から情報を入力することが可能です。 ただCUIや設定ファイル …

no image

JAXRSによるRESTAPI作成方法

業務でJavaによりWEBAPI(Rsetful API)を作成する機会ががあったのでちょっとメモしておきます。 Contents1 RestAPIとは2 プログラムの作成方法について RestAPI …

no image

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

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

アーカイブ