Struts2的上传(基本流程例如以下)1、Struts2默认採用了apache commons-fileupload2、Struts2支持三种类型的上传组件3、须要引入commons-fileupload相关依赖包* commons-io-1.3.2.jar* commons-fileupload-1.2.1.jar4、表单中须要採用POST提交方式,编码类型须要使用:multipart/form-data5、Struts2的Action取得文件名->>规则:输入域的名称+固定字符串FileName取得文件数据->>规则:File 输入域的名称取得内容类型->>规则:输入域的名称+固定字符串ContentType6、得到输入流。採用输出流写文件
①.首先导入对应的jar包。然后我们建立一个index.jsp页面。
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%>②然后我们须要一个Action来处理上传,代码例如以下:Insert title here
import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;import com.opensymphony.xwork2.Action;public class UploadTestAction { private String title; //能够得到上传文件的名称 //规则:输入域的名称+固定字符串FileName private String myFileFileName; //取得文件数据 //规则:File 输入域的名称 private File myFile; // //取得内容类型// //规则:输入域的名称+固定字符串ContentType private String myFileContentType; public String getMyFileFileName() { return myFileFileName; } public void setMyFileFileName(String myFileFileName) { this.myFileFileName = myFileFileName; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public File getMyFile() { return myFile; } public void setMyFile(File myFile) { this.myFile = myFile; } public String getMyFileContentType() { return myFileContentType; } public void setMyFileContentType(String myFileContentType) { this.myFileContentType = myFileContentType; } public String execute() throws Exception { InputStream is = null; OutputStream os = null; try { is = new BufferedInputStream( new FileInputStream(myFile)); os = new BufferedOutputStream( new FileOutputStream("D:\\" + myFileFileName)); byte[] buffer = new byte[1024]; int len = 0; while ((len = is.read(buffer)) > 0) { os.write(buffer, 0, len); } }finally { if (is != null) {is.close();} if (os != null) {os.close();} } return Action.SUCCESS; }}③Action写完以后再到struts2的配置文件配置一下代码例如以下:
OK!至此就能够上传文件了。/success.jsp