struts 上传文件

文件上传的时候struts会使用默认18个拦截器中的<interceptor name="fileUpload" class="org.apache.struts2.interceptor.FileUploadInterceptor"/>进行处理

文件上传Action类:

Action类中定义三个属性:

private File file1; 对应表单:<input type="file" name="file1">
private String file1FileName; 文件名
private String file1ContentType;文件的类型(MIME)

并且提供这三个属性的set方法。

文件上传表单:

<form action="${pageContext.request.contextPath }/fileUploadAction" method="post" enctype="multipart/form-data">
  		用户名:<input type="text" name="userName"><br/>
  		文件:<input type="file" name="file1"><br/>
  		<input type="submit" value="上传">
  	</form>

文件上传使用的Action类UploadAction

package cn.itcast.upload;

import java.io.File;
import java.io.IOException;

import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class UploadAction extends ActionSupport{

	// 对应表单:<input type="file" name="file1">
	private File file1; 
	// 文件名
	private String file1FileName;
	// 文件的类型(MIME)
	private String file1ContentType;
	public void setFile1(File file1) {
		this.file1 = file1;
	}
	public void setFile1FileName(String file1FileName) {
		this.file1FileName = file1FileName;
	}
	public void setFile1ContentType(String file1ContentType) {
		this.file1ContentType = file1ContentType;
	}
	public String upload() throws IOException{
		//得到上传的文件夹
		String path=ServletActionContext.getServletContext().getRealPath("/upload");
		//创建文件
		File file=new File(path,file1FileName);
		//讲上传的文件上传到指定的文件夹
		FileUtils.copyFile(file1, file);
		return "success";
	}
}
struts.xml文件的配置:

<struts>
	<package name="upload_" extends="struts-default">
		<!-- 注意: action 的名称不能用关键字"fileUpload" -->
		<action name="fileUploadAction" class="cn.itcast.upload.UploadAction" method="upload">
			<result name="success">/index.jsp</result>
			<!-- 配置错误视图 -->
			<result name="input">/error.jsp</result>
		</action>
		</package>
</struts>



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值