Struts 2シングルファイルアップロード
4931 ワード
1.必要なjarパッケージ:
(1)commons-fileupload-1.2.2.jar
(2)commons-io-2.0.1.jar
2.JSP
1、フォームはpost方式で提出しなければならない
2、フォームエンコーディングタイプ
enctype="multipart/form-data"
3、fileラベルにname属性を書く必要がある
<s:file label=" :" name="upload"></s:file>
htmlコードを添付:
<s:form action="upload.action" theme="simple" namespace="/" method="post" enctype="multipart/form-data">
<s:file label=" :" name="upload"></s:file>
<s:submit value=" "></s:submit>
</s:form>
3.Action
1.3つのメンバー変数の命名には、次のような仕様があります.
(1)private File uploadのupoloadと同じように、あなたがアップロードしたコミットページのname属性値と一致させる(2)ファイルタイプとファイル名の命名は、ページname属性値+ContentType、ページname属性値+FileName
すなわち、Actionでは、以下のように定義されるべきである.
private File upload; // name
private String uploadContentType; // +ContentType
private String uploadFileName; // +FielName
2.setterメソッドを提供し、対応するデータを受信する
3.対象ファイルの保管場所を定義し、commons-io-2.0.1.JArパッケージが提供するFileUtilsツールクラスは、アップロードファイルを指定した場所にコピーします.
アクション付きコード:
public class UploadAction extends ActionSupport {
//<s:file label=" :" name="upload"></s:file> //html file
private File upload; // name
private String uploadContentType; // +ContentType
private String uploadFileName; // +FielName
public void setUpload(File upload) {
this.upload = upload;
}
public void setUploadContentType(String uploadContentType) {
this.uploadContentType = uploadContentType;
}
public void setUploadFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
}
public String upload() {
File destFile = new File(ServletActionContext.getServletContext()
.getRealPath("/uploads")
+ "/" + uploadFileName);
try {
//
FileUtils.copyFile(upload, destFile);
} catch (IOException e) {
e.printStackTrace();
}
return SUCCESS;
}
}
ファイルのダウンロードを参照http://blog.csdn.net/sunglee_1992/article/details/53033498