struts2中单文件上传
定义jsp页面
上传文件名称:
失败jsp页面
<%@ page language="java" pageEncoding="utf-8" contentType="text/html; charset=utf-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
文件上传失败页面
定义action
/**
* 文件上传在struts2中是由文件上传拦截器来完成该功能的
*
*/
@SuppressWarnings("serial")
public class UploadAction extends ActionSupport {
/*
* 保存上传的临时目录下的文件
* 上传文件名称:
* 默认情况下临时文件的保存路径:
* E:\\apache-tomcat-6.0.18\\work\\Catalina\\localhost\\struts2demo\\upload__1f2ff5e0_13772875cdc__8000_00000000.tmp
*/
//保存上传的临时目录下的文件.
private File uploadImage;
//保存了上传文件的类型: 格式:form表单中file组件的name属性的值+ContentType
private String uploadImageContentType;
//保存了上传文件的真实名称:格式:form表单中file组件的name属性的值+uploadImageFileName
private String uploadImageFileName;
public String saveFile(){
System.out.println("类型:"+ uploadImageContentType +" 真实名称 "+uploadImageFileName);
ServletContext sc=ServletActionContext.getServletContext();
String path=sc.getRealPath("/pic");
try {
FileUtils.copyFile(uploadImage, new File(path,uploadImageFileName));//将临时文件拷贝到指定的目录
uploadImage.delete();//删除上传的临时文件
} catch (IOException e) {
e.printStackTrace();
}
return "success";
}
.....getter setter
}
配置struts_upload.xml文件
/upload/success.jsp
/upload/error.jsp
设置临时文件路径和大小
....
局部配置上传文件的大小和路径
2097152
application/x-zip-compressed,application/vnd.ms-excel,text/plain
zip,xls,txt
处理上传失败时的错误信息
错误的信息来自于
struts2-core-*.jar\org\apache\struts2\struts-messages.properties文件中
struts.messages.error.uploading=Error uploading: {0}
struts.messages.error.file.too.large=File too large: {0} "{1}" "{2}" {3}
struts.messages.error.content.type.not.allowed=Content-Type not allowed: {0} "{1}" "{2}" {3}
struts.messages.error.file.extension.not.allowed=File extension not allowed: {0} "{1}" "{2}" {3}
{0}:
中name属性的值
{1}:上传文件的名称
{2}:上传文件保存到临时目录的名称
{3}:上传文件的类型(对struts.messages.error.file.too.large是上传文件的大小)
* 上面的是有struts2运行时动态传入
中文化失败信息
在com.yxkong.upload[任何路径都可]下
创建fileupload.properties文件[文件的名称自定义]
* 增加如下内容
struts.messages.error.uploading=上传失败: {0}
struts.messages.error.file.too.large=文件太大: {0} "{1}" "{2}" {3}
struts.messages.error.content.type.not.allowed=内容类型不允许: {0} "{1}" "{2}" {3}
struts.messages.error.file.extension.not.allowed=文件的扩展名不允许: {0} "{1}" "{2}" {3}
在struts.xml中的 标签下添加
多文件上传
public class UploadsAction extends ActionSupport {
private File[] uploadImages;
private String[] uploadImagesContentType;
private String[] uploadImagesFileName;
public String saveFiles() {
ServletContext sc = ServletActionContext.getServletContext();
String path = sc.getRealPath("/pic");
try {
if(uploadImages!=null&uploadImages.length>0){
for(int i=0;i