zoukankan      html  css  js  c++  java
  • springmvc文件上传下载简单实现案例(ssm框架使用)

    springmvc文件上传下载实现起来非常简单,此springmvc上传下载案例适合已经搭建好的ssm框架(spring+springmvc+mybatis)使用,ssm框架项目的搭建我相信你们已经搭建好了,这里不再赘述,下面就开始吧!

    ssm框架整合详情请看:http://www.tpyyes.com/a/javaweb/2016/1103/23.html

    1.首先我们创建一个测试用的jsp页面,代码如下。

     1 <%@ page language="java" contentType="text/html; charset=utf-8"  
     2     pageEncoding="utf-8"%>  
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
     4 <html>  
     5 <head>  
     6 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">  
     7 <title>文件上传下载</title>  
     8 </head>  
     9 <body>  
    10     <form action="http://localhost:8080/uploadDemo/rest/file/upload" method="post" enctype="multipart/form-data">  
    11         选择文件:<input type="file" name="file" width="120px">  
    12         <input type="submit" value="上传">  
    13     </form>  
    14     <hr>  
    15     <form action="http://localhost:8080/uploadDemo/rest/file/down" method="get">  
    16         <input type="submit" value="下载">  
    17     </form>  
    18 </body>  
    19 </html>  

    2.在我们的maven项目的pom.xml文件中添加fileupload文件上传下载jar包,不然后面的操作可能会报错,如下。

    1 <!-- 文件上传 -->  
    2 <dependency>  
    3 <groupId>commons-fileupload</groupId>  
    4 <artifactId>commons-fileupload</artifactId>  
    5 <version>1.3</version>  
    6 </dependency>  

    3.在spring的servlet视图解析器下面定义CommonsMultipartResolver文件解析器,就是加入这个的时候运行项目,如果没有fileuload相关的jar包就会报错。

    1 <!-- 定义文件解释器 -->  
    2 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">    
    3     <!-- 设置默认编码 -->  
    4     <property name="defaultEncoding" value="utf-8"></property>  
    5     <!-- 上传图片最大大小5M-->   
    6     <property name="maxUploadSize" value="5242440"></property>    
    7 </bean>  

    4.在controller层写上springmvc上传下载的代码,如下。

     1 package com.baidu;  
     2 @RequestMapping("file")  
     3 @Controller  
     4 public class FileController {  
     5     /**  
     6      * 文件上传功能  
     7      * @param file  
     8      * @return  
     9      * @throws IOException   
    10      */  
    11     @RequestMapping(value="/upload",method=RequestMethod.POST)  
    12     @ResponseBody  
    13     public String upload(MultipartFile file,HttpServletRequest request) throws IOException{  
    14         String path = request.getSession().getServletContext().getRealPath("upload");  
    15         String fileName = file.getOriginalFilename();    
    16         File dir = new File(path,fileName);          
    17         if(!dir.exists()){  
    18             dir.mkdirs();  
    19         }  
    20         //MultipartFile自带的解析方法  
    21         file.transferTo(dir);  
    22         return "ok!";  
    23     }  
    24       
    25     /**  
    26      * 文件下载功能  
    27      * @param request  
    28      * @param response  
    29      * @throws Exception  
    30      */  
    31     @RequestMapping("/down")  
    32     public void down(HttpServletRequest request,HttpServletResponse response) throws Exception{  
    33         //模拟文件,myfile.txt为需要下载的文件  
    34         String fileName = request.getSession().getServletContext().getRealPath("upload")+"/myfile.txt";  
    35         //获取输入流  
    36         InputStream bis = new BufferedInputStream(new FileInputStream(new File(fileName)));  
    37         //假如以中文名下载的话  
    38         String filename = "下载文件.txt";  
    39         //转码,免得文件名中文乱码  
    40         filename = URLEncoder.encode(filename,"UTF-8");  
    41         //设置文件下载头  
    42         response.addHeader("Content-Disposition", "attachment;filename=" + filename);    
    43         //1.设置文件ContentType类型,这样设置,会自动判断下载文件类型    
    44         response.setContentType("multipart/form-data");   
    45         BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());  
    46         int len = 0;  
    47         while((len = bis.read()) != -1){  
    48             out.write(len);  
    49             out.flush();  
    50         }  
    51         out.close();  
    52     }  
    53 }  

    springmvc上传下载很方便,代码直接复制使用。

  • 相关阅读:
    记php多张图片合成一张图片 压缩固定分辨率 合并生成竖列 纵向长图(可用于商品详情图合并下载)
    记php-mysql分页查询出现重复数据
    记laravel order by 问题
    记登录注册时候 前端js明文密码 加密传输 php解密
    记下载oss图片接口(附带删除)
    记tp5.1使用composer PhpOffice的xlsx表格文件导入数据库
    记php移动并压缩多级目录文件为zip文件并上传oss
    Jmeter服务器性能监控工具插件之ServerAgent
    Jmeter阶梯式加压测试
    Jmeter 下载+安装+汉化+版本更新+备份使用(Jmeter 4+版本均适用)
  • 原文地址:https://www.cnblogs.com/huangjinyong/p/9040255.html
Copyright © 2011-2022 走看看