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表单乱码解决方法)



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

相关文章推荐

struts文件上传

  • 2017年11月06日 14:47
  • 3KB
  • 下载

struts文件上传实例

  • 2016年08月07日 21:49
  • 383KB
  • 下载

Struts2多文件上传

第一种方式: package com.ljq.action; import java.io.File; import org.apache.commons.io.FileUtil...

struts文件上传

  • 2014年12月14日 14:05
  • 21KB
  • 下载

struts2文件上传大小限制问题小结

一:首先看一下程序执行中出现的对应报错信息,如下所示: [WARN ] 2015-03-03 15:31:11 :Unable to parse request org.apache...

uploadify+struts2多文件上传

  • 2017年02月14日 20:45
  • 6.07MB
  • 下载

struts 文件上传

  • 2015年09月11日 17:59
  • 38.16MB
  • 下载

struts2文件上传的例子

jsp Insert title here 文件上传 帐号 文件 附件1: 附件2: 附件3: Action 需要一个F...

struts2文件上传

  • 2014年10月10日 14:53
  • 3.6MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:struts文件上传
举报原因:
原因补充:

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