struts2上传文件

原创 2013年12月04日 10:10:52

如何使用struts2上传文件

 

1、JSP提交表单

<!-- 后面的action不能少,它会根据action前面的字符串去匹配是否有对应的请求 -->
  <form action="personAdd.action" method="post" enctype="multipart/form-data"> 
文件:<input type="file" name="myfile"><br>

 

2、对应的action接受传递过来的表单数据

package hb.person.action;

import hb.person.model.Person;
import hb.person.service.IPersonService;
import hb.util.BeanUtil;
import hb.util.MD5Util;

import java.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.InvocationTargetException;
import java.security.NoSuchAlgorithmException;
import java.util.Calendar;
import java.util.List;

import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.struts2.ServletActionContext;
import org.hibernate.HibernateException;
import com.opensymphony.xwork2.ActionSupport;

public class PersonAction extends ActionSupport {

	//接收表单传递过来的参数需要保证属性名和表单名是一致的,并且有set方法	
	File myfile;//上传的文件
	String myfileFileName;//上传文件名 表单名+FileName
	String myfileContentType;//上传文件类型 表单名+ContentType
	public void setMyfile(File myfile) {
		this.myfile = myfile;
	}
	public void setMyfileFileName(String myfileFileName) {
		this.myfileFileName = myfileFileName;
	}
	public void setMyfileContentType(String myfileContentType) {
		this.myfileContentType = myfileContentType;
	}


	@Override
	public String execute() throws Exception {
		return "success";
	}
	
	public String addPerson(){
		Person person = new Person();
		person.setAge(new Integer(this.age));
		person.setName(this.name);
		try {
			person.setPassword(MD5Util.EncoderPwdByMd5(this.password));
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		}
		person.setBirthday(Calendar.getInstance().getTime());
		if(this.myfile != null){
			System.out.println(this.myfileFileName);
			File temp = new File("c:\\huangbiao");
			try {
				FileUtils.copyFile(this.myfile, temp);
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		IPersonService personService = (IPersonService)BeanUtil.getBean("ipersonService");
		personService.addPerson(person);
		return "success";
	}
	
}

 

 

上传多个文件?

1、表单的文件名字是一样的

文件:<input type="file" name="myfile"><br>
文件:<input type="file" name="myfile"><br>
文件:<input type="file" name="myfile"><br>

 2、对应的action属性使用数组或者是list

List<File> myfile;//上传的文件
List<String> myfileFileName;//上传文件名
List<String> myfileContentType;//上传文件类型
public void setMyfile(List<File> myfile) {
		this.myfile = myfile;
	}
public void setMyfileFileName(List<String> myfileFileName) {
		this.myfileFileName = myfileFileName;
	}
public void setMyfileContentType(List<String> myfileContentType) {
		this.myfileContentType = myfileContentType;
	}

 备注:struts2只认识setMyfile、setMyfileFileName、setMyfileContentType,不管是否是一个还是多个文件上传,实际上是根据——接收表单传递过来的参数需要保证属性名和表单名是一致的,并且有set方法

 

 

struts2之如何向服务器上传文件

转载请注明:http://blog.csdn.net/uniquewonderq 问题:在struts2框架下实现文件上传 方案:struts2提供了拦截器可以自动实现文件上传,并且该拦截器存...
  • uniquewonderq
  • uniquewonderq
  • 2015年07月25日 18:53
  • 5335

【Struts2实现文件上传】struts2上传文件异常总结及解决方式

实现文件上传工程坏境搭建如下: Struts2相关jar包: 1.在web.xml配置核心过滤器 struts2 org.apache.struts2.dispatcher.n...
  • u010143291
  • u010143291
  • 2016年07月02日 12:49
  • 3615

ajaxFileUpload 异步上传文件配合Struts2的简单使用

我在用SSH框架写一个简单的企业网站的时候需要对产品的图片进行异步上传,经过研究成功实现了ajaxFileUpload+Struts2的异步上传功能,所以抽空做下总结,本文主要讲解ajaxFileUp...
  • cckevincyh
  • cckevincyh
  • 2017年04月16日 21:43
  • 1296

使用struts2实现文件上传并在上传过程中为文件重新命名

1.设置表单 在form标签中设置method="post" enctype="multipart/formdata" 2.编写Action 在Action中通过属性接收上传文件信息 3.配置...
  • qq_33663071
  • qq_33663071
  • 2016年01月07日 22:21
  • 303

Struts2上传文件拦截器实现文件上传

Struts2预置了大量的拦截器,见struts-default.xml第122行。 有一部分拦截器是Struts2框架自身用到的,必须引用,这些拦截器打包在basicStack中,我们项目中引...
  • xlinsist
  • xlinsist
  • 2014年12月11日 13:34
  • 772

关于struts2中文件上传获取不到文件名的问题

今天尝试着做了一下使用struts2来进行文件上传,但是做出来的效果达不到理想的状态,那就是文件能够上传到目标路径,但是文件名却发生了错误,这就造成了获取文件也成了问题,整了一下午都没有找到问题,忽然...
  • wojiaohuangyu
  • wojiaohuangyu
  • 2016年05月28日 22:24
  • 2880

struts2上传文件不生成临时文件

转载:http://blog.163.com/hehui_326/blog/static/9483177720120392710349/ 传文件是很多Web程序都具有的功能。Struts2本身没有提...
  • sujiacheng_123
  • sujiacheng_123
  • 2017年03月28日 21:55
  • 267

Struts2实现简单的上传功能

Struts2提供的文件上传下载机制十分简便,使得我们写很少的代码,就可以实现该功能,单文件上传、多文件上传、下载等。    当然,我们肯定要引入Struts2上传下载文件相关的jar包的,这里需要引...
  • u010785685
  • u010785685
  • 2016年04月23日 15:13
  • 1516

struts2实现文件上传进度条(前端JS+Java)(自我整理)

struts2实现文件上传进度条(前端JS+Java)(自我整理)
  • u011768325
  • u011768325
  • 2015年06月15日 09:05
  • 1972

Struts2实现文件的上传并实现错误提示

1.首先建一个project,添加struts2的必备jar包,在src目录下建一个struts.xml来配置struts2.内容可以从struts2-core的jar包下找到struts-defau...
  • glnanana
  • glnanana
  • 2017年03月13日 15:54
  • 141
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:struts2上传文件
举报原因:
原因补充:

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