Struts2的文件上传

1.文件上传介绍

浏览器端注意事项:
表单提交方式method=post
表单中必须有一个组件
表单中必须设置enctype=”multipart/form-data”
服务器端
Commons-fileupoad.jar包完成。
Struts2框架本身支持文件上传
Struts2框架使用一个fileupload的interceptor来完成文件上传,而我们要使用它
在action中我们可以提供类似以下的操作就能完成文件上传操作

private File upload;
private String uploadContextType;
private String uploadFileName;

在execute方法中将文件copy就可以完成文件上传。

2.文件上传快速入门

2.1创建一个upload.jsp页面
<body>
    <form action="${pageContext.request.contextPath }/up" method="post" enctype="multipart/form-data">
    	<input type="file" name="upload">
    	<input type="file" name="upload">
    	<input type="submit" name="上传">
    </form>
  </body>
2.2创建action
<action name="up" class="Action.UploadAction" method="uploadFile">
			<!-- 配置input视图,显示错误信息 -->
			<result  name="input">/error.jsp</result>
		</action>
2.3 UploadAction
private File upload;
private String uploadContextType;
private String uploadFileName;
......
//get/set方法
......
public void uploadFile() {
		// 得到upload目录在tomcat的绝对磁盘路径
		String realPath = ServletActionContext.getServletContext().getRealPath("/upload");
		//创建一个服务端文件
		File dest = new File(realPath,uploadFileName);
		try {
			//文件上传操作
			FileUtils.copyFile(upload, dest);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
2.3 上传多个文件
//上传多个文件,采用数组或者list集合;
	private File[] upload;
	private String[] uploadContextType;
	private String[] uploadFileName;
	......
	//get/set方法
	......
	public void uploadFile() {
		// 得到upload目录在tomcat的绝对磁盘路径
		String realPath = ServletActionContext.getServletContext().getRealPath("/upload");
		for(int i=0;i<upload.length;i++) {
			//创建一个服务端文件
			File dest = new File(realPath,uploadFileName[i]);
			try {
				//文件上传操作
				FileUtils.copyFile(upload[i], dest);
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		}
	}

<!-- 设置常量,显示错误信息 -->
	<constant name="struts.devMode" value="true"></constant>
	<!-- 修改最大文件限制的大小 -->
	<constant name="struts.multipart.maxsize" value="20971520"></constant>
<action name="up" class="cn.itheima.action.UploadAction"
			method="uploadFile">			
			<result name="input">/error.jsp</result>
			<interceptor-ref name="fileUpload">
			<param name="maximumSize"></param> <!-- 设置每一个action允许的上传文件大小 -->
			<param name="allowedTypes"></param> <!-- 设置上传允许的文件的mimeType类型,多个使用逗号分开  -->
			<param name="allowedExtensions">bmp,txt</param> <!-- 设置上传文件允许的后缀名,多个使用逗号分开 -->
			</interceptor-ref>
			<interceptor-ref name="defaultStack"/>
		
		</action>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值