1. @Controller
  2. public class FileUploadCtrl {
  3. @Value("${file.upload.dir}")
  4. private String path;
  5.  
  6. /**
  7. * 实现文件上传
  8. * */
  9. @RequestMapping(value = "/fileUpload", method = RequestMethod.POST)
  10. @ResponseBody
  11. public Map<String,Object> fileUpload(@RequestParam("fileName") MultipartFile file){
  12. Map<String,Object> map = new HashMap<String, Object>();
  13. int no = 0;
  14. String msg = "上传失败!";
  15.  
  16. if(!file.isEmpty()){
  17. String fileName = file.getOriginalFilename();
  18.  
  19. File dest = new File(path + "/" + fileName);
  20.  
  21. if(!dest.getParentFile().exists()){ //判断文件父目录是否存在
  22. dest.getParentFile().mkdir();
  23. }
  24.  
  25. try {
  26. file.transferTo(dest); //保存文件
  27. no = 1;
  28. msg = "上传成功!";
  29. } catch (IllegalStateException e) {
  30. e.printStackTrace();
  31. } catch (IOException e) {
  32. e.printStackTrace();
  33. }
  34. }
  35.  
  36. map.put("no",no);
  37. map.put("msg", msg);
  38.  
  39. return map;
  40. }
  41.  
  42. @RequestMapping(
  43. value = "/fileDownload",
  44. method = RequestMethod.GET
  45. )
  46. public ResponseEntity<?> getGwFileContent(@RequestParam String fileName,@RequestParam int flag) {
  47. HttpHeaders headers = new HttpHeaders();
  48. headers.add("Cache-Control", "no-cache, no-store, must-revalidate");
  49. String filepath = path+"/"+fileName;;
  50.  
  51. InputStream is = null;
  52.  
  53. try {
  54. headers.add("Content-Disposition", String.format("attachment; filename=\"%s\"", new String(fileName.getBytes("GBK"), "ISO8859-1")));
  55.  
  56. if(flag==0){//表示获取缩略图
  57. File file = new File(filepath);
  58.  
  59. filepath = path+"/xx"+fileName;
  60. File xxFile = new File(filepath);
  61. if(!xxFile.exists()){//不存在就生成缩略图
  62. Thumbnails.of(file).scale(0.25f).toFile(xxFile);
  63. }
  64. }
  65.  
  66. is = new FileInputStream(new File(filepath));
  67. } catch (UnsupportedEncodingException e) {
  68. e.printStackTrace();
  69. } catch (FileNotFoundException e) {
  70. e.printStackTrace();
  71. } catch (IOException e) {
  72. e.printStackTrace();
  73. }
  74.  
  75. headers.add("Pragma", "no-cache");
  76. headers.add("Expires", "0");
  77.  
  78. return ResponseEntity
  79. .ok()
  80. .headers(headers)
  81. .contentType(MediaType.parseMediaType("application/octet-stream"))
  82. .body(new InputStreamResource(is));
  83. }
  84.  
  85. }

spring-boot 实现文件上传下载的更多相关文章

  1. spring boot实现文件上传下载

    spring boot 引入”约定大于配置“的概念,实现自动配置,节约了开发人员的开发成本,并且凭借其微服务架构的方式和较少的配置,一出来就占据大片开发人员的芳心.大部分的配置从开发人员可见变成了相对 ...

  2. Spring Boot 教程 - 文件上传下载

    在日常的开发工作中,基本上每个项目都会有各种文件的上传和下载,大多数文件都是excel文件,操作excel的JavaAPI我用的是apache的POI进行操作的,POI我之后会专门讲到.此次我们不讲如 ...

  3. Spring Boot入门——文件上传与下载

    1.在pom.xml文件中添加依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="ht ...

  4. spring boot:单文件上传/多文件上传/表单中多个文件域上传(spring boot 2.3.2)

    一,表单中有多个文件域时如何实现说明和文件的对应? 1,说明和文件对应 文件上传页面中,如果有多个文件域又有多个相对应的文件说明时, 文件和说明如何对应? 我们在表单中给对应的file变量和text变 ...

  5. spring mvc注解文件上传下载

    需要两个包: 包如何导入就不介绍了,前端代码如下(一定要加enctype="multipart/form-data"让服务器知道是文件上传): <form action=&q ...

  6. Spring Boot—04文件上传

    package com.smartmap.sample.ch1.controller.view; import java.io.File; import java.io.IOException; im ...

  7. spring mvc 实现文件上传下载

    /** * 文件上传 * @param pictureFile */ @RequestMapping("/reportupload") public ResponseInfo up ...

  8. spring boot Tomcat文件上传找不到零时文件夹

    springboot项目上传文件是找不到零时文件夹 1.本身启动jar包时内置Tomcat没有创建零时文件夹 2.在zuul网关级别没有创建零时文件夹 处理方案: -Djava.io.tmpdir=/ ...

  9. Spring Boot RestTemplate文件上传

    @ResponseBody @RequestMapping(value = "/upload.do", method = RequestMethod.POST) public St ...

  10. Spring boot设置文件上传大小限制

    原文:https://blog.csdn.net/lizhangyong1989/article/details/78586421 Spring boot1.0版本的application.prope ...

随机推荐

  1. Java获取URL链接的文件类型

    问题发生: Java从网络批量读取图片并保存至本网站服务器后再插入文章中 今天转入一篇文章 http://news.qq.com/a/20170605/045860.htm 发现图片未能成功上传 查看 ...

  2. mysql 比较函数和操作符

    MYSQL之中的比较函数和操作符: 1.[NOT] BETWEEN ... AND ...  Check whether a value is within a range of values 说明: ...

  3. Lua游戏开发参考资料收集

    table {border-collapse:collapse;} List of game engines that use lua: 2D Agen (Lua; Windows) Blitwiza ...

  4. ExpandoObject对象的JSON序列化

    如果: dynamic expando = new ExpandoObject(); d.SomeProp=SomeValueOrClass; 然后,我们在控制器中: return new JsonR ...

  5. C# 获取文件的MIME类型

    在C#中获取文件的MIME类型(Content Type)的方法如下 一.使用MimeMapping类 在System.Web程序集中,当前为静态类,就一个获取 // // 摘要: // 映射文档扩展 ...

  6. LaTeX技巧22:LaTeX文档中的参考文献初级

    用 LaTeX 处理文档, 经常就要书写参考文献, 本篇就是介绍如何在 LaTeX 中使用参考文献, 注意这里讲的是LaTeX默认的 thebibliography 环境, 如果要了解 LaTeX 中 ...

  7. ubuntu下如何批量修改文件后缀名

    正确的方法是: 在命令行中输入   rename   's/\.JPG/.jpg/'    *.JPG [注意] 在单引号中的最后一个'/'符号不能少! 意思是:把当前文件夹下的所有 .JPG文件 替 ...

  8. JavaScript:sort() 方法

    ylbtech-JavaScript:sort() 方法 JavaScript sort() 方法 1. 定义和用法返回顶部 sort() 方法用于对数组的元素进行排序. 语法 arrayObject ...

  9. [leetcode]Gas Station @ Python

    原题地址:https://oj.leetcode.com/problems/gas-station/ 题意: There are N gas stations along a circular rou ...

  10. Android Studio快速集成讯飞SDK实现文字朗读功能

    今天,我们来学习一下怎么在Android Studio快速集成讯飞SDK实现文字朗读功能,先看一下效果图: 第一步 :了解TTS语音服务 TTS的全称为Text To Speech,即“从文本到语音” ...