struts文件上传

原创 2016年08月29日 01:47:34

struts文件上传

文件上传按照我的理解就是从本地上选择某一文件上传到web容器指定的某一位置,而使用struts可以方便的实现这一功能。
文件上传需要这几个包:commons-io-1.1.jar commons-fileupload-1.1.1.jar,别的struts开头的就不说了.下面是实现案例。

Form类

import org.apache.struts.action.ActionForm;
import org.apache.struts.upload.FormFile;

public class FileUploadForm extends ActionForm {
	
	private FormFile file;

	public FormFile getFile() {
		return file;
	}

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

Action类

import java.io.FileOutputStream;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;

public class FileUploadAction extends Action {
	
	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		// TODO Auto-generated method stub
		System.out.println("执行FileAction中的execute方法");
		
		FileUploadForm fileForm = (FileUploadForm)form;
		
		FormFile file = fileForm.getFile();
		System.out.println("contentType:" + file.getContentType());
		System.out.println("fileName:" + file.getFileName());
		System.out.println("fileSize:" + file.getFileSize());
		//UPLOAD这一文件在WebRoot目录下
		String path = this.servlet.getServletContext().getRealPath("/UPLOAD");
		System.out.println("文件保存到:" + path);
		//File.separator
		//System.out.println("File.separator:" + File.separator);
		FileOutputStream fos = new FileOutputStream(path + file.getFileName());
		fos.write(file.getFileData());
		fos.close();
		return super.execute(mapping, form, request, response);
	}
}
JSP页面
<html>
  <head>
    <title>FileUpload TEST</title>
  </head>
  
  <body style="margin: 2% 10%;">
    <h2>File</h2>
    <hr noshade="noshade">
    <html:form action="FileUploadAction.do" method="POST" enctype="multipart/form-data">
    	<table border="1" style="border-collapse:separate;">
    		<tr>
    		<td>选择文件<td><html:file property="file"></html:file>
			<tr>
    		<td><td><html:submit value="上传"></html:submit>
    	</table>
    </html:form>
  </body>
</html>
页面效果
点击上传,即可
最后Consoal弹出信息如下
Request原编码为:null
Filter设置Encoding为:UTF-8
执行FileAction中的execute方法
contentType:image/jpeg
fileName:001.jpg
fileSize:405506
文件保存到:D:\JAVA\Tomcat\apache-tomcat-8.0.21\webapps\Struts-Unti-1.3.10\UPLOAD\
因为文件名可能出现中文,所以要设置过滤器,(请看struts表单乱码解决方法)



版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)