web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="struts2" extends="struts-default">
<action name="upload" class="com.xie.struts.upload.UploadAction">
<result name="success">/upload/result.jsp</result>
</action>
</package>
</struts>
upload.jsp

<%...@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%...@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>upload</title>
</head>
<body>
<s:form action="upload" enctype="multipart/form-data">
<s:textfield name="username" id="username" label="username"/>
<s:file name="file" id="file" label="file"/>
<s:submit/>
</s:form>
</body>
</html>result.jsp

<%...@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%...@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>result</title>
</head>
<body>
<s:property value="username" />
<br>
<s:property value="fileFileName" />
</body>
</html>UploadAction.java
package com.xie.struts.upload;
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 UploadAction extends ActionSupport ...{
private String username;
private File file;
private String fileFileName; // 有属性file+Filename固定组成
private String fileContentType; // 有属性file+ContentType固定组成

public String getUsername() ...{
return username;
}

public void setUsername(String username) ...{
this.username = username;
}

public File getFile() ...{
return file;
}

public void setFile(File file) ...{
this.file = file;
}

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;
}
@Override
public String execute() throws Exception ...{
InputStream is = new FileInputStream(file);
String root = ServletActionContext.getRequest().getRealPath("/temp");
File destFile = new File(root, this.getFileFileName());
OutputStream os = new FileOutputStream(destFile);
byte[] buffer = new byte[400];
int length = 0;
while ((length - is.read(buffer)) > 0) ...{
os.write(buffer, 0, length);
}
is.close();
os.close();
return SUCCESS;
}
}
本文介绍了一个使用Struts2框架实现文件上传的具体案例,包括web.xml配置、struts.xml配置文件设置、JSP页面展示及Java后端处理逻辑。
3704

被折叠的 条评论
为什么被折叠?



