struts 2ファイルアップロード取得ファイル名、ファイルタイプ
3254 ワード
会社のプロジェクトを開発する際にこのような問題に遭遇し、現在のエンドでバックグラウンドactionクラスにファイルをアップロードし、取り出したファイル名、ファイルタイプが変わったことに気づいた.これはなぜですか.ファイル名とファイルタイプをどのように取得すればいいですか?そこで大量の資料を探して発見した:Strut 2のActionクラスは直接Fileタイプ属性を通じてアップロードファイルのファイル内容を直接カプセル化したが、このFile属性はアップロードファイルのファイル名とファイルタイプを取得できないので、Struts 2は直接ファイルドメインに含まれる上传文件名とファイルタイプの情報をuploadFileNameとuploadContentType属性にカプセル化し、すなわち、Struts 2は、フォーム内のxxxというファイルドメインについて、対応するActionクラスで3つの属性を使用してファイルドメイン情報をカプセル化する.
lタイプがFileのxxx属性:ページファイルドメインに対応するファイル内容をカプセル化するために使用されます.
lタイプStringのxxxFileNameプロパティ:ファイルドメインに対応するファイルをカプセル化するファイル名.
lタイプがStringのxxxContentTypeプロパティ:ファイルドメインに適用されるファイルをカプセル化するファイルタイプ.
参考資料:http://www.bsuc.cn:8013/wlkc/javaweb/document/four/ch10-8.htm
jspページ
このnameはActionの属性に対応しています
Actionクラスコード:
3つの属性を設定します.このようにして、アップロードしたファイル、ファイル名、ファイルタイプを取得することができます.
注意:このuploadFileName、uploadContentType.ファイルの場合 属性名xxx(private File xxx;)これはxxxFileName、xxxContentTypeでなければなりません.そしてsetメソッドも別々にあげればいいです.
Struts 2マルチファイルアップロード
ページ:
アクション処理クラス:
private File[] upload;//複数のアップロードファイルドメインオブジェクトをFile配列でカプセル化
private String[] uploadFileName;//String配列で複数のアップロードファイル名をカプセル化
private String[] uploadContentType;//String配列で複数のアップロードファイルタイプをカプセル化
またはprivate List upload;//複数のアップロードファイルドメインオブジェクトをリストセットでカプセル化
private List uploadFileName;//複数のアップロードファイル名をリスト配列でカプセル化
private List uploadContentType;//複数のアップロードファイルタイプをリストセットでカプセル化
struts 2.xmlのブロッキングの構成
Struts 2はファイルアップロードのブロッキング(fileUploadという名前)を提供し、このブロッキングを構成することでファイルタイプのフィルタリングを簡単に実現することができる. 上記の例では、アップロードするファイルを構成するのは、image/bmp、image/png、image/gif、image/jpeg、image/jpgなど、一般的なピクチャファイル形式のみである場合、struts.xmlファイルでは次のように構成できます.
lタイプがFileのxxx属性:ページファイルドメインに対応するファイル内容をカプセル化するために使用されます.
lタイプStringのxxxFileNameプロパティ:ファイルドメインに対応するファイルをカプセル化するファイル名.
lタイプがStringのxxxContentTypeプロパティ:ファイルドメインに適用されるファイルをカプセル化するファイルタイプ.
参考資料:http://www.bsuc.cn:8013/wlkc/javaweb/document/four/ch10-8.htm
jspページ
このnameはActionの属性に対応しています
Actionクラスコード:
private File upload;
private String uploadFileName;
private String uploadContentType;
public void setUpload(File upload) {
this.upload = upload;
}
public void setUploadFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
}
public void setUploadContentType(String uploadContentType) {
this.uploadContentType = uploadContentType;
}
3つの属性を設定します.このようにして、アップロードしたファイル、ファイル名、ファイルタイプを取得することができます.
注意:このuploadFileName、uploadContentType.ファイルの場合 属性名xxx(private File xxx;)これはxxxFileName、xxxContentTypeでなければなりません.そしてsetメソッドも別々にあげればいいです.
Struts 2マルチファイルアップロード
ページ:
アクション処理クラス:
private File[] upload;//複数のアップロードファイルドメインオブジェクトをFile配列でカプセル化
private String[] uploadFileName;//String配列で複数のアップロードファイル名をカプセル化
private String[] uploadContentType;//String配列で複数のアップロードファイルタイプをカプセル化
またはprivate List upload;//複数のアップロードファイルドメインオブジェクトをリストセットでカプセル化
private List uploadFileName;//複数のアップロードファイル名をリスト配列でカプセル化
private List uploadContentType;//複数のアップロードファイルタイプをリストセットでカプセル化
struts 2.xmlのブロッキングの構成
Struts 2はファイルアップロードのブロッキング(fileUploadという名前)を提供し、このブロッキングを構成することでファイルタイプのフィルタリングを簡単に実現することができる. 上記の例では、アップロードするファイルを構成するのは、image/bmp、image/png、image/gif、image/jpeg、image/jpgなど、一般的なピクチャファイル形式のみである場合、struts.xmlファイルでは次のように構成できます.
image/bmp,image/png,image/gif,image/jpg
102400
/upload
/index.jsp
/showupload.jsp