复习struts2之文件上传

本文详细介绍如何使用Struts2框架实现文件上传功能,包括所需jar包的添加、表单设置、Action类编写等步骤,并提供了文件大小限制的配置方法。
第一步:在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"/> 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值