下面我来为您详细讲解一下 "Struts2 + JSP 实现文件上传的方法" 的完整攻略。
1. 环境搭建
首先,需要准备好以下开发环境:
- Eclipse IDE
- Tomcat 服务器
- Struts2 框架
2. 添加 Struts2 依赖库
在 Eclipse 中创建一个新的 Web 项目,并在项目的 build path 中添加 Struts2 的依赖库。
3. JSP 页面
编写一个用于上传文件的 JSP 页面。以下是一个简单的示例:
<form action="fileUpload" method="post" enctype="multipart/form-data">
<input type="file" name="file" /><br />
<input type="submit" value="Upload" />
</form>
4. Action 类编写
创建一个 Struts2 的 Action 类来处理上传的文件,并将上传的文件保存到指定的位置。以下是代码示例:
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import com.opensymphony.xwork2.ActionSupport;
public class FileUploadAction extends ActionSupport {
private File file;
private String fileFileName;
private String fileContentType;
// 设置上传的文件
public void setFile(File file) {
this.file = file;
}
// 设置上传的文件名
public void setFileFileName(String fileFileName) {
this.fileFileName = fileFileName;
}
// 设置上传文件的类型
public void setFileContentType(String fileContentType) {
this.fileContentType = fileContentType;
}
@Override
public String execute() throws Exception {
String filePath = "C:/uploadedFiles/" + fileFileName;
File destFile = new File(filePath);
try {
FileUtils.copyFile(file, destFile);
} catch (IOException e) {
e.printStackTrace();
return ERROR;
}
return SUCCESS;
}
}
在 Action 中,重载了 execute 方法,用于处理上传的文件,并将上传的文件保存到指定的位置。
5. Struts2 配置文件
在 struts.xml 文件中,添加一个上传文件的 Action 映射,并启用文件上传功能。以下是代码示例:
<struts>
<package name="example" namespace="/" extends="struts-default">
<action name="fileUpload" class="FileUploadAction">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
<constant name="struts.multipart.maxSize" value="102400000" />
</struts>
其中,struts.multipart.maxSize 属性用于设置最大上传文件的限制。
6. 测试上传文件
最后,在浏览器中访问上传文件的 JSP 页面,选择一个文件进行上传。上传成功后,文件将会被保存到指定的位置。
示例
以下是一个上传图片的示例:
- JSP 页面:
<form action="imageUpload" method="post" enctype="multipart/form-data">
<input type="file" name="image" /><br />
<input type="submit" value="Upload" />
</form>
- Action 类:
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import com.opensymphony.xwork2.ActionSupport;
public class ImageUploadAction extends ActionSupport {
private File image;
private String imageFileName;
private String imageContentType;
// 设置上传的图片
public void setImage(File image) {
this.image = image;
}
// 设置上传的图片名称
public void setImageFileName(String imageFileName) {
this.imageFileName = imageFileName;
}
// 设置上传图片的类型
public void setImageContentType(String imageContentType) {
this.imageContentType = imageContentType;
}
@Override
public String execute() throws Exception {
String imagePath = "C:/uploadedImages/" + imageFileName;
File destFile = new File(imagePath);
try {
FileUtils.copyFile(image, destFile);
} catch (IOException e) {
e.printStackTrace();
return ERROR;
}
return SUCCESS;
}
}
- Struts2 配置文件:
<struts>
<package name="example" namespace="/" extends="struts-default">
<action name="imageUpload" class="ImageUploadAction">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
<constant name="struts.multipart.maxSize" value="102400000" />
</struts>
在以上示例中,文件将会被保存到 C:/uploadedImages/
目录下。请根据实际情况,修改文件保存的路径。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:struts2+jsp实现文件上传的方法 - Python技术站