第一步:在WEB-INF/lib下加入commons-fileupload-1.2.1.jar、commons-io-1.3.2.jar。这两个文件可以从http://commons.apache.org/下载。
第二步:把form表的enctype设置为:“multipart/form-data“,如下:
<form action="${pageContext.request.contextPath }/test/helloword.do" enctype="multipart/form-data" method="post">
文件:<input type="file" name="image"/><br/>
<input type="submit" value="上传">
</form>
第三步:在Action类中添加以下属性:
// 要把它保存到硬盘上去,如果不保存到硬盘上去,它会保存到struts2的临时目录里,当action运行完后就会被删掉
private File image;
// 获取文件名 这个String类型的字符串的命名前部分是定义的文件名,后部分是FileName
private String imageFileName;
//此处省略上面两个属性的set和get方法
public String execute() throws Exception {
//文件保存到images下,获取文件夹的真实路径
String realPath = ServletActionContext.getServletContext().getRealPath(
"/images");
//打印出真实路径
System.out.println("真实路径"+realPath);
if(image!=null){
//文件保存的目录
File saveFile = new File(new File(realPath), imageFileName);
//得到目录,如果目录不存在就创建出来
if (saveFile.getParentFile().exists()) {
saveFile.getParentFile().mkdirs();
}
//保存在路径saveFile下
FileUtils.copyFile(image, saveFile);
ActionContext.getContext().put("message", "上传成功");
}
return "success";
}
注:在struts2的2.0版本中第一步中的commons-fileupload-1.2.1.jar不用导入,但在struts2的2.1版本中必须要添加进去,用到的工具类FileUtils在commons-io-1.3.2.jar中,如果不用这个工具类,可以不导这个包
如果上传文件过大时会抛异常。可以在struts.xml文件中通过对常量的配置改变上传文件的大小
<!--上传文件的大小限制-->
<constant name="struts.multipart.maxSize" value=“10701096"/>
复习struts2之文件上传
最新推荐文章于 2024-05-03 03:54:58 发布
本文详细介绍如何使用Struts2框架实现文件上传功能,包括所需jar包的添加、表单设置、Action类编写等步骤,并提供了文件大小限制的配置方法。
7423

被折叠的 条评论
为什么被折叠?



