SpringMVC中的文件上传与下载
文件上传:
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中的文件上传与下载相关推荐
- SpringMVC中的文件上传与下载,json转换,及三大框架的整合
文章目录 文件上传 准备一个文件上传的表单 导入文件上传需要的jar包 配置文件上传解析器 编写文件上传的Controller控制器中的代码: 使用ResponseEntity返回值处理文件下载 使用 ...
- (转)SpringMVC学习(九)——SpringMVC中实现文件上传
http://blog.csdn.net/yerenyuan_pku/article/details/72511975 这一篇博文主要来总结下SpringMVC中实现文件上传的步骤.但这里我只讲单个文 ...
- 使用SpringMVC框架实现文件上传和下载功能
使用SpringMVC框架实现文件上传和下载功能 (一)单个文件上传 ①配置文件上传解释器 <!-配置文件上传解释器 --> <mvc:annotation-driven>&l ...
- SpringMVC之实现文件上传与下载
之前仿造uploadify写了一个HTML5版的文件上传插件,没看过的朋友可以点此先看一下~得到了不少朋友的好评,我自己也用在了项目中,不论是用户头像上传,还是各种媒体文件的上传,以及各种个性的业务需 ...
- SpringMVC中的文件上传
1. 配置图片服务器 一般图片会单独保存在图片服务器上, 本文为简化处理, 在Tomcat中配置一个路劲用于专门存放图片 在tomcat上配置图片虚拟目录,在tomcat下conf/server.xm ...
- 最全面的SpringMVC教程(五)——文件上传与下载
前言 本文为 [SpringMVC教程]文件上传与下载 相关知识,具体将对使用MultipartResolver处理文件上传的步骤,两种文件下载方式(直接向response的输出流中写入对应的文件流. ...
- Java Web项目中遇到的文件上传与下载问题
(转发自:https://www.cnblogs.com/xdp-gacl/p/4200090.html) 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中 ...
- java spring文件下载_SpringMVC实现文件上传和下载的工具类
本文主要目的是记录自己基于SpringMVC实现的文件上传和下载的工具类的编写,代码经过测试可以直接运行在以后的项目中. 开发的主要思路是对上传和下载文件进行抽象,把上传和下载的核心功能抽取出来分装成 ...
- 一篇文章教你学会使用SpringBoot实现文件上传和下载
文章目录 一.搭建SpringBoot开发环境 1.创建项目 2.配置application.properties参数 3.实体响应类和异常信息类 4.创建FileController 二.接口测试 ...
最新文章
- string 与 c style 字符串的效率测试
- k歌的录音伴奏合成技术如何实现_2019年中国在线K歌行业市场现状,在线K歌用户女性占比较高...
- Spcok简约图片分享网站Typecho主题
- think route.php,ThinkPHP5—路由(route)详解
- 数字图像处理 频率域平滑 MATLAB实验
- 苹果自研5G调制解调器将在2023年量产 采用台积电4nm工艺
- 指出Linux内核中boot,uBoot和Linux内核中涉及到的几个地址参数的理解
- 销售与顾客的PV同步算法
- 数据库出现'\xF0\x9F\x98\xB8'
- 利用DeskPins软件将windows窗口置顶
- MATLAB 中gcf、gca 以及gco 的区别
- 飞翔 noip提高组难度
- 怎么查看自己本地的ip地址
- C语言:一道随机步法题
- 第一行代码Android个人笔记(五)——文件存储
- 坐标转换程序:(1)四参数和七参数的计算
- 寻找复杂背景下的物体轮廓 (从禾路的博客园整理学习)
- \t\t盐城范围内野外钓鱼好去处(不是塘钓哟)
- 华为ac控制器web配置手册_31、堂堂华为企业级AP怎么还不如家用TP的速度”快“呢?(优化篇)...
- win7/win10下KiWi Syslog服务器的安装与配置