文件上传:

apache上传组件方案
添加依赖

<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
<dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.4</version>
</dependency>

在springmvc当中要注册一个上传解析器

<!--文件上传解析器id必须为multipartResolver,因为源代码中写死了
-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><!--指定最大上传的大小,总上传,单位位byts--><property name="maxUploadSize" value="1024*1024"/><!--指定上传的编码--><property name="defaultEncoding" value="UTF-8"/><!--单个文件最大上传大小--><property name="maxUploadSizePerFile" value="200000"/>
</bean>

准备一个上传的页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
上传成功,文件:${fileName}
</body>
</html>

后台处理

package com.xy.controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;import javax.net.ssl.SSLContext;
import java.io.File;
import java.io.IOException;
import java.util.Date;@Controller
@RequestMapping("/file")
public class FileController {private static String  uploadPath = "F:\\IDEACode"+File.separator;//1,传到那里去。2,我传到哪里去。3,细节//入参就可以代表上传的文件@RequestMapping("/upload")public String upload(@RequestParam("file")MultipartFile multipartFile, Model model){//1,判断if(multipartFile!=null&&!multipartFile.isEmpty()){//不空才传//2 构建新的文件String originalFilename = multipartFile.getOriginalFilename();//3.先截取源文件的文件名前缀,不带后缀String fileNamePrefix = originalFilename.substring(0, originalFilename.lastIndexOf("."));//4.加工处理文件名,将源文件名+时间戳String newFileNamePrefix=fileNamePrefix+new Date().getTime();//5.得到新文件名String newFileName = newFileNamePrefix+originalFilename.substring(originalFilename.lastIndexOf("."));//6。构建文件对象File file = new File(uploadPath+newFileName);//7.上传try {multipartFile.transferTo(file);model.addAttribute("fileName",newFileName);} catch (IOException e) {e.printStackTrace();System.out.println(e.getMessage());}System.out.println(originalFilename);}return "uploadSuc";}
}

文件下载

后台

package com.xy.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;@Controller
@RequestMapping("/download")
public class DownloadController {//定义一个文件下载的目录private static String pathPath ="F:\\IDEACode"+ File.separator;@RequestMapping("/down")public String down(HttpServletResponse response){response.setCharacterEncoding("UTF-8");//通过输出流写到客户端,浏览器//1,获取下载的文件名String fileName = "123.jpg";//2.构建一个文件对象Path path = Paths.get(pathPath, fileName);//3.判断他是否存在if(Files.exists(path)){//存在则下载//通过response设定他的响应类型//4,获取文件的后缀String fileSuffix = fileName.substring(fileName.lastIndexOf(".")+1);//5,设置contentType,只有指定它才能去下载response.setContentType("application/"+fileSuffix);//6,添加头信息try {response.addHeader("Content-Disposition","attachment;filename="+new String(fileName.getBytes("UTF-8"),"ISO8859-1"));} catch (UnsupportedEncodingException e) {e.printStackTrace();}//7,通过path写出去try {Files.copy(path,response.getOutputStream());} catch (IOException e) {e.printStackTrace();}}return "msg";}
}

SpringMVC中的文件上传与下载相关推荐

  1. SpringMVC中的文件上传与下载,json转换,及三大框架的整合

    文章目录 文件上传 准备一个文件上传的表单 导入文件上传需要的jar包 配置文件上传解析器 编写文件上传的Controller控制器中的代码: 使用ResponseEntity返回值处理文件下载 使用 ...

  2. (转)SpringMVC学习(九)——SpringMVC中实现文件上传

    http://blog.csdn.net/yerenyuan_pku/article/details/72511975 这一篇博文主要来总结下SpringMVC中实现文件上传的步骤.但这里我只讲单个文 ...

  3. 使用SpringMVC框架实现文件上传和下载功能

    使用SpringMVC框架实现文件上传和下载功能 (一)单个文件上传 ①配置文件上传解释器 <!-配置文件上传解释器 --> <mvc:annotation-driven>&l ...

  4. SpringMVC之实现文件上传与下载

    之前仿造uploadify写了一个HTML5版的文件上传插件,没看过的朋友可以点此先看一下~得到了不少朋友的好评,我自己也用在了项目中,不论是用户头像上传,还是各种媒体文件的上传,以及各种个性的业务需 ...

  5. SpringMVC中的文件上传

    1. 配置图片服务器 一般图片会单独保存在图片服务器上, 本文为简化处理, 在Tomcat中配置一个路劲用于专门存放图片 在tomcat上配置图片虚拟目录,在tomcat下conf/server.xm ...

  6. 最全面的SpringMVC教程(五)——文件上传与下载

    前言 本文为 [SpringMVC教程]文件上传与下载 相关知识,具体将对使用MultipartResolver处理文件上传的步骤,两种文件下载方式(直接向response的输出流中写入对应的文件流. ...

  7. Java Web项目中遇到的文件上传与下载问题

    (转发自:https://www.cnblogs.com/xdp-gacl/p/4200090.html)   在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中 ...

  8. java spring文件下载_SpringMVC实现文件上传和下载的工具类

    本文主要目的是记录自己基于SpringMVC实现的文件上传和下载的工具类的编写,代码经过测试可以直接运行在以后的项目中. 开发的主要思路是对上传和下载文件进行抽象,把上传和下载的核心功能抽取出来分装成 ...

  9. 一篇文章教你学会使用SpringBoot实现文件上传和下载

    文章目录 一.搭建SpringBoot开发环境 1.创建项目 2.配置application.properties参数 3.实体响应类和异常信息类 4.创建FileController 二.接口测试 ...

最新文章

  1. string 与 c style 字符串的效率测试
  2. k歌的录音伴奏合成技术如何实现_2019年中国在线K歌行业市场现状,在线K歌用户女性占比较高...
  3. Spcok简约图片分享网站Typecho主题
  4. think route.php,ThinkPHP5—路由(route)详解
  5. 数字图像处理 频率域平滑 MATLAB实验
  6. 苹果自研5G调制解调器将在2023年量产 采用台积电4nm工艺
  7. 指出Linux内核中boot,uBoot和Linux内核中涉及到的几个地址参数的理解
  8. 销售与顾客的PV同步算法
  9. 数据库出现'\xF0\x9F\x98\xB8'
  10. 利用DeskPins软件将windows窗口置顶
  11. MATLAB 中gcf、gca 以及gco 的区别
  12. 飞翔 noip提高组难度
  13. 怎么查看自己本地的ip地址
  14. C语言:一道随机步法题
  15. 第一行代码Android个人笔记(五)——文件存储
  16. 坐标转换程序:(1)四参数和七参数的计算
  17. 寻找复杂背景下的物体轮廓 (从禾路的博客园整理学习)
  18. \t\t盐城范围内野外钓鱼好去处(不是塘钓哟)
  19. 华为ac控制器web配置手册_31、堂堂华为企业级AP怎么还不如家用TP的速度”快“呢?(优化篇)...
  20. win7/win10下KiWi Syslog服务器的安装与配置

热门文章

  1. 行业应用必不可少 佳能激光打印新品抢先了解
  2. 谈谈Android切换系统语言导致Activity的重启
  3. dx dp 和sp 的关系
  4. 设计人士参加的论坛,自然要有格调的开场形式
  5. 干货!14个最新优质加载动画设计,让等待成为一种享受
  6. Memcache协议中文版
  7. SpringBoot+MyBatisPlus+Vue增删改查
  8. 【供应链架构day3】苏宁电商采购的架构演进之路
  9. 辞职在家带娃以后,社保缴纳方式就改为自由职业
  10. 扩张背后短期亏损,奈雪的茶想要讲一个“量变到质变”的故事