struts.xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.custom.i18n.resources" value="UTF-8"></constant>
<!-- 當struts.xml配置文件發生修改,會立刻加載,在生產環境下最好不要配置 -->
<constant name="struts.configuration.xml.reload" value="true"/>
<!-- 需要繼承struts-default包,這樣就擁有的最基本的功能 -->
<package name="upload-package" extends="struts-default">
<action name="upload" class="com.java.struts2.action.UploadAction">
<result>/success.jsp</result>
</action>
</package>
</struts>
上傳的Action類
package com.java.struts2.action;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import com.opensymphony.xwork2.Action;
public class UploadAction {
private String title;
//可以得到上傳文件的名稱
//規則:輸入域的名稱+固定字符串FileName
private String myFileFileName;
//取得文件數據
//規則:File 輸入域的名稱
private File myFile;
//取得內容類型
//規則:輸入域的名稱+固定字符串ContentType
private String myFileContentType;
public String getMyFileContentType() {
return myFileContentType;
}
public void setMyFileContentType(String myFileContentType) {
this.myFileContentType = myFileContentType;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getMyFileFileName() {
return myFileFileName;
}
public void setMyFileFileName(String myFileFileName) {
this.myFileFileName = myFileFileName;
}
public File getMyFile() {
return myFile;
}
public void setMyFile(File myFile) {
this.myFile = myFile;
}
public String execute() throws Exception {
InputStream is = null;
OutputStream os = null;
try {
is = new BufferedInputStream(
new FileInputStream(myFile));
os = new BufferedOutputStream(
new FileOutputStream("E:\\" + myFileFileName));
byte[] buffer = new byte[1024];
int len = 0;
while ((len = is.read(buffer)) > 0) {
os.write(buffer, 0, len);
}
}finally {
if (is != null) {is.close();}
if (os != null) {os.close();}
}
return Action.SUCCESS;
}
}
表單:
<form action="upload.action" method="post" enctype="multipart/form-data">
標題:<input type="text" name="title"><br>
文件:<input type="file" name="myFile"><br>
<input type="submit" value="提交">
</form>
成功頁面:
<body>
title:${title }<br>
fileName:${myFileFileName }<br>
myFileContentType:${myFileContentType }<br>
Name"${myFile.name }"
</body>