struts2的文件上传

struts2里面的文件上传,是将文件上传到发布工作空间中。
第一步: 新建jsp页面

<p>文件上传</p>
<!-- action:提交地址  method:提交方式,文件上传时提交方式一定要post enctype:表单类型-->
<!-- multipart/form-data:是不对字符编码。使用包含文件上传控件的表单时,必须使用该值。-->
 <form action="testAction_loadFile.action" method="post" enctype="multipart/form-data">
  <input type="file" name="fname"/>
  <input type="submit" value="上传"/>
 </form>

第二步:写文件上传的方法

package com.ystruts.action;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.http.HttpServletRequest;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class TestAction extends ActionSupport{	
	
	//这两个属性必须要定义,也要提供get,set方法
	private File fname;//名称和页面上文件框的name名一致
  	private String fnameFileName;//这里的命名是页面上文件框的name名+FileName,这是规范
	
	@SuppressWarnings("deprecation")
	  public String loadFile() {
		   //获取到request对象
		   HttpServletRequest request=ServletActionContext.getRequest();
		   //获取到项目的真实路径,也就是项目的发布路径
		   String path = request.getRealPath("/images");
		   //这里是给上传的文件夹重命名,防止重名。以时间的方式重命名
		   String extName=fileNameFileName.substring(fileNameFileName.lastIndexOf('.'));
		   SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddHHmmssSSSS");
		   String filename = sdf.format(new Date());
		   //拼接了路径和新的文件名,放到一个文件对象中
		   File file=new File(path+"/"+filename+extName);
		   try {
		    //使用struts的帮助类复制文件
		    FileUtils.copyFile(fileName, file);
		   } catch (IOException e) {
		    e.printStackTrace();
		   }
		   return "sc";
		  }
	}
		```
		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值