SSM框架中使用文件上传的示例

1.首先要导入文件上传需要的jar包 

commons-fileupload-1.3.2.jar  用于文件上传,但是只有这个包也是不行的 ,  commons-fileupload-1.3.2.jar 依赖于  commons-io-2.5.jar 一起使用

2.在配置文件中配置文件解析器,默认是关闭的,所以要打开一下,在spring-mvc配置文件中配置一下

<!-- 文件解析器 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"></property>
<!-- 指定所上传的总大小不能超过200KB。注意maxUploadSize属性的限制不是针对单个文件,而是所有文件 -->
<property name="maxUploadSize" value="200000"></property>
</bean>

3.controller 控制层写调用的方法

<!-- 注解访问层接口 并注入   用于最后调用方法--!>

@Resource
private StudentDao StudentDao;

public void setStudentDao(StudentDao studentDao) {
StudentDao = studentDao;
}

<!-- 用注解方式,value指定从页面的提交地址,method指定是用表单的方式提交过来的 -->

@RequestMapping(value="/add",method=RequestMethod.POST)

<!-- Student student指参数,我这里用的是Student实体类  MultipartFile photo指文件上传的参数,与页面name指必须一致,HttpServletRequest request获取请求参数,File不提供request提交 -->

public String postAdd(Student student,MultipartFile photo, HttpServletRequest request) throws Exception{

<!-- 保存文件到指定的路径   这里获取的是服务器的绝对路径 --!>
String realPath = request.getServletContext().getRealPath("/img");

<!--获取文件名字 --!>
String oldName = photo.getOriginalFilename();

<!--加上后缀 赋给一个新的变量 --!>
String newName = UUID.randomUUID().toString() + oldName.substring(oldName.lastIndexOf("."));

<!--把文件放到项目的指定地方  --!>
File dest = new File(realPath+File.separator+newName );
photo.transferTo(dest);
<!-- 把路径赋给实体类所对应的列  用于添加到数据库中--!>
student.setImg(newName);

<!-- 调用添加方法  重定向到查询页面 --!>
StudentDao.add(student);
return "redirect:/student/list";
}

以上是我的做的一个小示例,希望能帮助到你们!

原文地址:https://www.cnblogs.com/huazai1996/p/8301506.html

时间: 2024-10-13 16:46:41

SSM框架中使用文件上传的示例的相关文章

SSM框架-SpringMVC 实例文件上传下载

SSM框架-SpringMVC 实例文件上传下载 2017-04-17 09:38 4497人阅读 评论(6) 收藏 举报  分类: java基础(3)  目录(?)[+] 目录(?)[+] 林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文详细讲解了SpringMVC实例单文件上传.多文件上传.文件列表显示.文件下载. 本文工程免费下载 一.新建一个Web工程,导入相关的包 springmvc的包+commons-fileupload

ssm框架下的文件上传和文件下载

最近在做一个ssm的项目,遇到了添加附件和下载的功能,在网上查了很多资料,发现很多都不好用,经过摸索,发现了一套简便的方法,和大家分享一下.1.文件上传前台页面使用了easyui,代码如下: <table> <tr> <td>附件</td> <td> <input class="easyui-filebox" type="file" name="file1" id="fi

struts2中的文件上传,文件下载

文件上传: Servlet中的文件上传回顾 前台页面 1.提交方式post 2.表单类型 multipart/form-data 3.input type=file 表单输入项 后台 apache提交的FileUpload组件 核心类: FileItemFactory    FileItem的工厂 ServletFileUpLoad    servlet中文件上传的核心类 FileItem  封装了上传表单文件项的信息 在servlet中文件上传处理起来比较麻烦. struts框架对文件上传组件

转:在Struts 2中实现文件上传

前一阵子有些朋友在电子邮件中问关于Struts 2实现文件上传的问题, 所以今天我们就来讨论一下这个问题. 实现原理 Struts 2是通过Commons FileUpload文件上传.Commons FileUpload通过将HTTP的数据保存到临时文件夹,然后Struts使用fileUpload拦截器将文件绑定到Action的实例中.从而我们就能够以本地文件方式的操作浏览器上传的文件. 具体实现 前段时间Apache发布了Struts 2.0.6 GA,所以本文的实现是以该版本的Struts

SF:salesforce中,文件上传的接收对象

使用Attachment,做文件的上传: 上传的内容,最终会存放到sf的Attachment对象里. 使用<apex:inputFile>组件上传文件: 上传的内容,会存放到sf的Document对象里. 使用sf中的,Content App中的Library来存放Content文件: 上传的文件,会在ContentWorkspace对象(Library),ContentVersion对象(Content)来存放具体的文件的内容(包括,二进制的文件等等,但是,它需要一个ContentDocum

struts2中实现文件上传功能

在web项目中,文件上传.头像上传这样的功能经常是要用到的,下面就以在struts2中实现文件上传功能为例子,简单地理一下文件上传功能的编码思路. 项目目录结构 项目源代码 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:x

struts2中的文件上传和下载

天下大事,必做于细.天下难事,必作于易. 曾经见过某些人,基础的知识还不扎实就去学习更难的事,这样必然在学习新的知识会很迷惑结果 再回来重新学习一下没有搞懂的知识,这必然会导致学习效率的下降!我写的这篇上传和下载都很基础. 十分适合初学者! jsp:页面 <!--在进行文件上传时,表单提交方式一定要是post的方式,因为文件上传时二进制文件可能会很大,还有就是enctype属性,这个属性一定要写成multipart/form-data, 不然就会以二进制文本上传到服务器端--> <for

在WebBrowser中通过模拟键盘鼠标操控网页中的文件上传控件

在WebBrowser中通过模拟键盘鼠标操控网页中的文件上传控件 引言 这两天沉迷了Google SketchUp,刚刚玩够,一时兴起,研究了一下WebBrowser. 我在<WebBrowser控件使用技巧分享>一文中曾谈到过"我现在可以通过WebBrowser实现对各种Html元素的操控,唯独无法控制Html的上传控件",出于安全原因,IE没有对上传控件提供操控支持,这使得我们没法像控制其他控件一样用简单的代码进行赋值. 比较实际的解决方案就是模拟操作了,下面我就将演示

如何在Web页面中集成文件上传功能

当前,个人主页制作非常流行.当用户开发好自己的页面时,需要将文件传输到服务器上,解决这个问题的方法之一 是运行FTP服务器并将每个用户的FTP默认目录设为用户的Web主目录,这样用户就能运行FTP客户程序并上传文件到指定的 Web目录.由于Windows NT 和 Windows98均不提供直接的基于窗口形式的FTP客户程序,用户必须懂得如何使用基于命令行 的FTP客户,或掌握一种新的基于窗口形式的FTP客户程序.因此,这种解决方案仅对熟悉FTP且富有经验的用户来说是可行 的. 如果我们能把文件