首页 > 代码库 > struts2 文件上传
struts2 文件上传
网上有很多多文件上传的资料,我只记录需要注意的一点:
jsp页面:
<div><font size="10">文件上传</font><form action="FileUp" method="post" enctype="multipart/form-data"><s:file name="upload" size="20"></s:file><input type="submit" value="http://www.mamicode.com/上传"></form> </div>
s标签中file的name为upload,那么action中的bean属性就是upload
import java.io.File;import java.text.SimpleDateFormat;import java.util.Date;import org.apache.commons.io.FileUtils;import org.apache.struts2.ServletActionContext;//需要commons-io包和commons-fileupload包private File upload;//文件名private String uploadFileName;//设置上传文件的文件名 注意命名规范 "upload"+"FileName"private String uploadContentType;//上传文件的类型 注意命名规范 "upload"+"ContentType"//然后就是执行方法了:public String execute() throws Exception {//System.out.println(upload.getName());//System.out.println(uploadFileName);//System.out.println(uploadContentType);if(upload!=null&&upload.getName()!=null&&!"".equals(upload.getName())){String savePath = "uploads";//上传到服务器的哪个文件夹下,这个也可以在xml文件中配置String realPath = ServletActionContext.getServletContext().getRealPath("/");savePath = realPath + savePath +"/"+DateUtils.dateFormat(new Date(), "yyyyMMddhhmmss")+ uploadFileName;File saveFile = new File(savePath);if(saveFile.getParentFile()!=null&&!saveFile.getParentFile().exists()){saveFile.getParentFile().mkdirs();//如果父目录不存在则创建}FileUtils.copyFile(upload, saveFile);this.httpReq.setAttribute("uploadMessage", "上传成功!");//不要写upload.message 会把message当做属性return "SUCCESS";}return "UpFailure";}
只要action中属性名对了基本上就能接收到上传的文件名,当然不要忘了get,set方法
多文件上传:
<div><font size="10">文件上传</font><form action="FilesUp" method="post" enctype="multipart/form-data"><s:file name="file" size="20"></s:file><br><s:file name="file" size="20"></s:file><br><s:file name="file" size="20"></s:file><br><input type="submit" value="http://www.mamicode.com/上传"></form> </div>private List<File> file;private List<String> fileFileName;private List<String> fileContentType;@Overridepublic String execute() throws Exception {if(file!=null){if(file.size()==0){this.log.info("空文件上传!");}else{List<String> filesName = new ArrayList<String>();for (int i=0;i<file.size();i++) {if(file.get(i)!=null&&file.get(i).getName()!=null&&!"".equals(file.get(i).getName())){File saveFile = new File(ServletActionContext.getServletContext().getRealPath("/")+"uploads"+"/"+fileFileName.get(i));FileUtils.copyFile(file.get(i), saveFile);filesName.add(fileFileName.get(i));}else{this.log.info("第"+i+"个文件为空,无法上传!");}}this.httpReq.setAttribute("upFileMessage", filesName);return "SUCCESS";}}return "re";}
最后配置文件:
<!-- 指定允许上传的文件最大字节数。默认值是2097152(2M) --><constant name="struts.multipart.maxSize" value="http://www.mamicode.com/10701096"/><!-- 设置上传文件的临时文件夹,默认使用javax.servlet.context.tempdir 文件上传时使用--><constant name="struts.multipart.saveDir " value="http://www.mamicode.com/tmp" />
推荐内容:Struts2文件上传原理及示例
http://blog.sina.com.cn/s/blog_87720b870100zkn2.html
struts2 文件上传
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。