springmvc上传文件(图片)
2017-01-06 16:07
375 查看
环境:springmvc+spring+mybatis
前提环境,需要把ssm框架搭建好,如果没有搭建的话可以先搭建这个框架
然后需要添加jar包
pom里面添加
然后需要在springmvc.xml的配置文件中添加上传的配置文件
然后就可以开干了,
首先是前台页面jsp页面:
后台的controller类:
完成!
上面的java类上传图片的时候使用的是原生态的上传形式,使用的是底层的java的io流的,其实他们提供封装好的保存形式,所以可以将上面的contriller类该成下面的这个类:
简单了许多吧,其实这个样子写功能是不完善的,如果不同用户上传的文件名字一样就会把前一个文件给覆盖了,多以名字不能这样就草草的结束,可以在名字上再下下功夫,这些就留给你们自己做吧
前提环境,需要把ssm框架搭建好,如果没有搭建的话可以先搭建这个框架
然后需要添加jar包
pom里面添加
<!-- 上传组件 --> <!-- https://mvnrepository.com/artifact/commons-io/commons-io --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.5</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.2</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-codec/commons-codec --> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.10</version> </dependency>
然后需要在springmvc.xml的配置文件中添加上传的配置文件
<!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 默认编码 --> <property name="defaultEncoding" value="utf-8" /> <!-- 文件大小最大值 --> <property name="maxUploadSize" value="10485760000" /> <!-- 内存中的最大值 --> <property name="maxInMemorySize" value="40960"/> </bean>
然后就可以开干了,
首先是前台页面jsp页面:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>图片上传</title> </head> <body> <form action="/eshop/upload/uploadimg" enctype="multipart/form-data" method="post"> 上传图片:<input type="file" name="file" value="选择图片"><br> <input type="submit" value="上传"> </form> </body> </html>
后台的controller类:
package com.xiaopengpeng.controller; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; @Controller @RequestMapping("upload") public class UploadController { @RequestMapping("uploadimg") public String uploadimg(MultipartFile file) throws Exception{ String filename = file.getOriginalFilename(); System.out.println(filename); //写入本地磁盘 InputStream is = file.getInputStream(); byte[] bs = new byte[1024]; int len; OutputStream os = new FileOutputStream(new File("D:/temp/" + filename)); while ((len = is.read(bs)) != -1) { os.write(bs, 0, len); } os.close(); is.close(); return "ok"; } }
完成!
上面的java类上传图片的时候使用的是原生态的上传形式,使用的是底层的java的io流的,其实他们提供封装好的保存形式,所以可以将上面的contriller类该成下面的这个类:
package com.xiaopengpeng.controller; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; @Controller @RequestMapping("upload") public class UploadController { @RequestMapping("toUploadimg") public String toUploadimg(){ return "uploadimg"; } @RequestMapping("uploadimg") public String uploadimg(MultipartFile file) throws Exception{ String filename = file.getOriginalFilename(); file.transferTo(new File("D:/temp/" + filename)); return "ok"; }
简单了许多吧,其实这个样子写功能是不完善的,如果不同用户上传的文件名字一样就会把前一个文件给覆盖了,多以名字不能这样就草草的结束,可以在名字上再下下功夫,这些就留给你们自己做吧
相关文章推荐
- 微服务框架Spring Cloud介绍 Part2: Spring Cloud与微服务
- springmvc实现url路由功能
- spring aop 无法代理父类方法 的解决方法
- Spring MVC过滤器-超类 GenericFilterBean
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- Spring和ThreadLocal
- Spring Boot 开发微服务
- Spring AOP动态代理-切面
- Shiro学习之路 Hello Shiro(一)
- 使用MVC微信支付返回get_brand_wcpay_request:fail
- Spring整合Quartz(JobDetailBean方式)
- Spring整合Quartz(JobDetailBean方式)
- C#遍历文件夹后上传文件夹中所有文件错误案例分析
- VBS模拟POST上传文件的代码
- PHP响应post请求上传文件的方法
- PHP入门教程之上传文件实例详解
- php+ajax无刷新上传图片的实现方法