013——struts2的文件上傳

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>
	<constant name="struts.custom.i18n.resources" value="UTF-8"></constant>
	<!-- 當struts.xml配置文件發生修改,會立刻加載,在生產環境下最好不要配置 -->
	<constant name="struts.configuration.xml.reload" value="true"/>
	<!-- 需要繼承struts-default包,這樣就擁有的最基本的功能 -->
	<package name="upload-package" extends="struts-default">
		<action name="upload" class="com.java.struts2.action.UploadAction">
			<result>/success.jsp</result>
		</action>
	</package>

</struts>
上傳的Action類

package com.java.struts2.action;

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 UploadAction {

private String title;
	
	//可以得到上傳文件的名稱
	//規則:輸入域的名稱+固定字符串FileName
	private String myFileFileName;
	
	//取得文件數據
	//規則:File 輸入域的名稱
	private File myFile;

	//取得內容類型
	//規則:輸入域的名稱+固定字符串ContentType
	private String myFileContentType;
	
	public String getMyFileContentType() {
		return myFileContentType;
	}

	public void setMyFileContentType(String myFileContentType) {
		this.myFileContentType = myFileContentType;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getMyFileFileName() {
		return myFileFileName;
	}

	public void setMyFileFileName(String myFileFileName) {
		this.myFileFileName = myFileFileName;
	}

	public File getMyFile() {
		return myFile;
	}

	public void setMyFile(File myFile) {
		this.myFile = myFile;
	}
	
	public String execute() throws Exception {
		InputStream is = null;
		OutputStream os = null;
		try {
			is = new BufferedInputStream(
					new FileInputStream(myFile));
			os = new BufferedOutputStream(
					new FileOutputStream("E:\\" + 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;
	}
}
表單:

<form action="upload.action" method="post" enctype="multipart/form-data">
		標題:<input type="text" name="title"><br>
		文件:<input type="file" name="myFile"><br>
		<input type="submit" value="提交">
	</form>

成功頁面:

  <body>
	title:${title }<br>
	fileName:${myFileFileName }<br>
	myFileContentType:${myFileContentType }<br>
	Name"${myFile.name }"
  </body>




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章