Java Spring Boot 上传文件和预览文件地址解析

    @RequestMapping(value ="/upload",method = RequestMethod.POST)
    @Permission(isAjax=false)
    public String Upload(HttpServletRequest request, HttpServletResponse response,@RequestParam("files") MultipartFile[] files) {      List<String> fileurl=new ArrayList<String>();      try {
       if(files.length>0){
            String uploaddir="d:/upload/2017-12-18/";
            File dir=new File(uploaddir);
            if(!dir.exists()){
                dir.mkdirs();
            }
            for(MultipartFile file :files){
                if(!file.isEmpty()){
                    String suffix=file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
                    String filename=String.format("%s%s", UUID.randomUUID().toString(),suffix);
                    File fileinfo=new File(String.format("%s%s", uploaddir,filename));
                    FileUtils.writeByteArrayToFile(fileinfo, file.getBytes());
                    String url=String.format("/2017-12-18/%s", filename);
                    fileurl.add(url);
                }
            }
          }          // fileurl 图片地址清单
        } catch (IOException e) { 

}     }

下面是图片预览地址的解析方法

@Controller
public class HomeController {

    private final ResourceLoader resourceLoader;

    @Autowired
    public HomeController(ResourceLoader resourceLoader) {
        this.resourceLoader = resourceLoader;
    }

    @RequestMapping(method = RequestMethod.GET, value = "/{yyyy}-{MM}-{dd}/{filename:.+}")
    @ResponseBody
    public ResponseEntity<?> getFile(@PathVariable String yyyy, @PathVariable String MM, @PathVariable String dd, @PathVariable String filename) {
        try {
            return ResponseEntity.ok(resourceLoader.getResource(
                    "file:" + Paths.get("d:/upload/" + yyyy+"-"+MM+"-"+dd + "/", filename).toString()));
        } catch (Exception e) {
            return ResponseEntity.notFound().build();
        }
    }

}

访问图片地址为:http://localhost:8080/2017-12-18/956f293b-876e-4347-9fae-29ac290f357b.jpg

可以直接访问jar包以外,上传的文件、图片

时间: 2024-10-11 15:21:26

Java Spring Boot 上传文件和预览文件地址解析的相关文章

springboot(十七):使用Spring Boot上传文件

上传文件是互联网中常常应用的场景之一,最典型的情况就是上传头像等,今天就带着带着大家做一个Spring Boot上传文件的小案例. 1.pom包配置 我们使用Spring Boot最新版本1.5.9.jdk使用1.8.tomcat8.0. <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId>

Spring Boot 上传文件

1.上传文件 Spring Boot 上传文件也是使用 MultipartFile 类,和 Spring MVC 其实差不多,参考文章:https://www.cnblogs.com/jwen1994/p/11182923.html HTML <form enctype="multipart/form-data" method="post" action="/upload"> 文件:<input type="file&

Spring Boot(十七):使用 Spring Boot 上传文件

上传文件是互联网中常常应用的场景之一,最典型的情况就是上传头像等,今天就带着带着大家做一个 Spring Boot 上传文件的小案例. 1.pom 包配置 我们使用 Spring Boot 版本 2.1.0.jdk 1.8.tomcat 8.0. <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId&

文件上传之图片预览

一.业界现状分析 有时候我们需要在上传图片之前为用户提供图片预览的功能,HTML5规范出来之前,由于缺少原生的File API支持,我们需要借助Flash或者浏览器插件来满足这种需求.有了HTML5,我们可使用URL或者FileReader对象实现预览功能. 二.应用场景 图片分享类的应用,如Flickr,Facebook.相册应用,如:QQ相册. 虽然139邮箱没有合适的应用场景,但是可将技术预研的成果作为技术储备,好东西总有用得着的时候. 三.编码实现 方式一:window.URL (1).

2016/4/19 ①单个文件上传 ②上传图片后 预览图片

1,f1.php <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <!-- 作业:在网上找上传图片预览的代码 上传服务器 再预览--> <form action="f1chuli.php&q

input 文件上传实现本地预览

上传图片 本地预览 获取图片大小 上传视频 本地预览 获取视频 duration 视频大小 图片上传 主要涉及内容 input accept filesList URL.createObjectURL() URL.revokeObjectURL() input file <label for='upload'></label> // ::before :: after 用于扩展可点击区域 <input type="file" id="upload

图片上传前的预览(PHP)

1.先创建一个file表单域,我们需要用它来浏览本地文件.<form name="form1" id="form1" method="post" action="upload.php"><input type="file" name="file1" id="file1" /></form>2.试下效果: 判断文件类型:当用户选择了一

Spring Boot上传文件

我们使用Spring Boot最新版本1.5.9.jdk使用1.8.tomcat8.0. <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> </parent> <properties

用openoffice+jodconverter+webuploader+pdf.js实现文件上传、在线预览功能

一.背景 最近公司一个项目要实现一个文件上传以及多文档在线预览的功能,之前一直做无线工具开发的,没有涉及到这些东西.另外项目组缺java开发人员,而且自己也只是一个半吊子前端加小半吊子java开发人员,所以让我一个人先弄个Demo出来瞧瞧.在网上搜索了不少资料,在这里只是整理一下,留作以后查阅. 二.插件以及工具包 1.pdfjs-v1.7.225  前端pdf格式文件的显示组件 2.webuploader-0.1.5  百度的文件上传组件 3.video-js-6.2.5 html5视频播放组