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でのスクレイピング

スクレイピングというと一般的にはRubyが一番有名なようですが、もちろんスクレイピング自体はどの言語でも行うことができます。 Contents1 スクレイピングの手法1.1 正規表現1.2 HTMLパ …

no image

Javaビルドツール

JavaではPHPやRubyなどといったインタプリタ言語とは違い、ソースはクラスファイルといわれるファイルに変換する必要があります。この作業をコンパイルと呼びます。最低限この作業をやらないとプログラム …

no image

データベース文字コード対策他

Contents1 JDBC文字化け対策2 BigDecimal2.1 ソース2.2 参考リンク3 CreateQuery4 jsfのconvertNumber JDBC文字化け対策 データベースがu …

no image

GlassFishでDB接続

JavaEEではアプリケーションサーバーとしてGlassFishを使いますが、先日、GlassFishを通さないとJavaEEでDBが動かせないということを知りました。そのためJavaEEではデータベ …

no image

Javaのstreamまとめ

以前にもちょっと扱ったJavaのStreamに関してまとめ Contents1 過去のリンク2 ソース3 注意事項4 参考リンク 過去のリンク MapのStream http://skill-up-e …