在Struts2中为我们提供了比较简单的文件上传方式.
首先引入commons-fileupload-x.jar、commons-io-x.jar 这两个jar包,然后引入Struts2相关jar包
接下来新建一个jsp文件:写一个文件上传表单,这里需要特别注意要在form加上enctype="multipart/form-data" method="post" .
<form action="/admin/center/brandAction!addBrandProcess" enctype="multipart/form-data" method="post"> <table width="90%" border="0" cellspacing="2" cellpadding="3" align="center"> <tr bgcolor="f5f5f5"> <td width="22%"> <div align="right">图片:</div> </td> <td width="78%"><input type="file" name="uploadFile" /> </td> </tr> <tr bgcolor="f5f5f5"> <td colspan="2"> <div align="center"> <input type="submit" value=" 确 定 "> </div> </td> </tr> </table> </form>
下一步:添加我们的Action类:
package gd.hz.shopping.action; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.UUID; import org.apache.commons.io.FileUtils; import org.apache.struts2.ServletActionContext; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; import com.opensymphony.xwork2.ActionSupport; @Controller("brandAction") @Scope("prototype") public class Test extends ActionSupport { private static final long serialVersionUID = 1L; //此属性对应于表单中文件字段的名称 private File uploadFile; //下面的这两个属性的命名必须遵守上定的规则,即为"表单中文件字段的名称" + "相应的后缀" private String uploadFileContentType; // 得到上传的文件的数据类型, private String uploadFileFileName; // 得到上传的文件的名称 public File getUploadFile() { return uploadFile; } public void setUploadFile(File uploadFile) { this.uploadFile = uploadFile; } public String getUploadFileContentType() { return uploadFileContentType; } public void setUploadFileContentType(String uploadFileContentType) { this.uploadFileContentType = uploadFileContentType; } public String getUploadFileFileName() { return uploadFileFileName; } public void setUploadFileFileName(String uploadFileFileName) { this.uploadFileFileName = uploadFileFileName; } public String addBrandProcess() throws IOException { String realPath = ServletActionContext.getServletContext().getRealPath("/images"); SimpleDateFormat date = new SimpleDateFormat("/yyyy/MM/dd"); String dateTime = date.format(new Date()); realPath += dateTime; uploadFileFileName = UUID.randomUUID().toString() + uploadFileFileName.substring(uploadFileFileName.lastIndexOf('.')); System.out.println(uploadFileContentType); //控制图片类型 if(uploadFileContentType.equals("image/gif") || uploadFileContentType.equals("image/jpeg") || uploadFileContentType.equals("image/png") || uploadFileContentType.equals("image/bmp") || uploadFileContentType.equals("image/x-icon") || uploadFileContentType.equals("image/pjpeg")) { //判断文件是否为空,并且文件不能大于2M if(uploadFile != null && uploadFile.length() < 2097152) { //根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。 File filePath = new File(new File(realPath), uploadFileFileName); //判断路径是否存在 if(!filePath.getParentFile().exists()) { //如果不存在,则递归创建此路径 filePath.getParentFile().mkdirs(); } System.out.println(uploadFileFileName); System.out.println(filePath.getParentFile()); //将文件保存到硬盘上,Struts2会帮我们自动删除临时文件 try { FileUtils.copyFile(uploadFile, filePath); } catch (IOException e) { System.out.println("图片上传失败"); e.printStackTrace(); } } } return "success"; } }
上面还是要遵守约定大于配置,注意名称的命名,uploadFileContentType和uploadFileFileName必须遵守Struts2的规则.
Struts2默认文件的上传大小是2M,当大于2M时会抛出异常,这里我们可以在struts.xml文件里做如下配置,控制上传文件的大小:
<struts> <constant name="struts.multipart.maxSize" value="10485761"/> </struts>
相关推荐
使用struts2 上传图片到项目webapps目录下 然后生成缩略图 返回到页面显示缩略图
实际上,写完多文件上传和下载文章的时候,类似的想法就已经有了,一直没有实际把它整理好,今天也终于把这方面的一些经验分享给...注:本文使用的是单纯的Struts2 + Spring + Hibernate,图片操作并没有使用Servlet。
使用struts2 上传图片,上传图片后生成一张压缩后的图片,和生成一张小图片,在网页上不用显示大图片,显示的缩小后的图片
struts2上传图片到Oracle,并进行显示,测试可以成功上传
ckeditor和struts2实现图片上传和编辑器上浏览!
在struts2基础上实现的包括单文件、多文件的上传及下载
strut 上传图片 网站统计访问量 struts 重复提交
实现图片的上传和图片的预览,主要用strust2实现的
struts上传视频与照片可以再后页面显示。支持同时上传。
Struts2上传图片并生成等比例缩略图的实例,在上传文件的同时生成等比例的缩略图,分放在不同的文件夹下。自己亲测,没有问题。
struts2 ajax图片上传
struts2 上传图片限制.struts2 上传图片限制.struts2 上传图片限制.
ssh框架用struts2 hibernate实现图片的上传源码
CKEditor实现图片上传使用Struts2 博文参考地址:http://blog.csdn.net/itmyhome1990/article/details/17264627
使用struts2框架实现图片上传,不需要js开发
Extjs4文件上传,后台struts2
struts实现图片上传功能。包含详细的代码和配置信息。
struts2 批量上传 图片+ 文件 显示进度条
Jquery+struts2上传图片,制作进度条等示例,还有Jquery+Json+Struts实现Ajax技术,还有图形处理技术等,虽然很少,但都有重点突出,由于我也是学习,所以代码不是很简洁,对想学习交流的朋友非常合适