如果出现找不到指定的路径,就在你的项目下new一个文件夹upFile
项目中new以个Tomcataction类
UpFile.java
package action;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class UpFileAction extends ActionSupport{
private String fileFileName;
private String fileContentType;
private String file;
@Override
public String execute() throws Exception {
byte[] b=new byte[1024];
InputStream is=new FileInputStream(file);
OutputStream os=new FileOutputStream(new File(ServletActionContext.getServletContext().getRealPath("/upFile"),this.getFileFileName()));
int length=0;
while((length=is.read(b))>0){
os.write(b,0,length);
}
is.close();
os.close();
return SUCCESS;
}
public String init(){
return SUCCESS;
}
public String getFileFileName() {
return fileFileName;
}
public void setFileFileName(String fileFileName) {
this.fileFileName = fileFileName;
}
public String getFileContentType() {
return fileContentType;
}
public void setFileContentType(String fileContentType) {
this.fileContentType = fileContentType;
}
public String getFile() {
return file;
}
public void setFile(String file) {
this.file = file;
}
}
struts中文件上传的action配置
<!-- 文件操作 -->
<!-- 上传 -->
<action name="initUp" class="action.UpFileAction" method="init">
<result>upFile.jsp</result>
</action>
<action name="upFile" class="action.UpFileAction">
<result>/upFile.jsp</result>
</action>
upFile.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'UpFile.jsp' starting page</title>
</head>
<body>
<s:form action="upFile.action" enctype="multipart/form-data" method="post">
<s:file name="file" size="50" label="文件上传"></s:file>
<s:submit value="上传"></s:submit>
</s:form>
<img src="${pageContext.request.contextPath}/<s:property value="'upFile/'+fileFileName"/>">
</body>
</html>
直接访问initUp.action就可以转到上传文件的jsp了