相关文章推荐
慷慨的抽屉  ·  excle 根据特殊符号去字符串 - CSDN文库·  10 月前    · 
聪明的椅子  ·  sqlalchemy根据表名动态创建mode ...·  1 年前    · 
光明磊落的消防车  ·  spaCy 第二篇:语言模型 - 悦光阴 ...·  1 年前    · 
八块腹肌的生菜  ·  Unity脚本引用原理,修复Unity脚本引 ...·  1 年前    · 
Code  ›  spring webflux文件上传下载开发者社区
response 文件上传
https://cloud.tencent.com/developer/article/1340287
一直单身的台灯
1 年前
作者头像
code4it
0 篇文章

spring webflux文件上传下载

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
社区首页 > 专栏 > 码匠的流水账 > spring webflux文件上传下载

spring webflux文件上传下载

作者头像
code4it
发布 于 2018-09-17 15:53:59
2.5K 0
发布 于 2018-09-17 15:53:59
举报

序

本文主要讲述一下spring webflux的文件上传和下载。

maven

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-webflux</artifactId>
        </dependency>

文件上传

@PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    public Mono<String> requestBodyFlux(@RequestPart("file") FilePart filePart) throws IOException {
        System.out.println(filePart.filename());
        Path tempFile = Files.createTempFile("test", filePart.filename());
        //NOTE 方法1
        AsynchronousFileChannel channel =
                AsynchronousFileChannel.open(tempFile, StandardOpenOption.WRITE);
        DataBufferUtils.write(filePart.content(), channel, 0)
                .doOnComplete(() -> {
                    System.out.println("finish");
            .subscribe();
        //NOTE 方法二
//        filePart.transferTo(tempFile.toFile());
        System.out.println(tempFile.toString());
        return Mono.just(filePart.filename());
    }

使用RequestPart来接收,得到的是FilePart FilePart的content是Flux,可以使用DataBufferUtils写到文件 或者直接使用transferTo写入到文件

文件下载

    @GetMapping("/download")
    public Mono<Void> downloadByWriteWith(ServerHttpResponse response) throws IOException {
        ZeroCopyHttpOutputMessage zeroCopyResponse = (ZeroCopyHttpOutputMessage) response;
        response.getHeaders().set(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=parallel.png");
 
推荐文章
慷慨的抽屉  ·  excle 根据特殊符号去字符串 - CSDN文库
10 月前
聪明的椅子  ·  sqlalchemy根据表名动态创建model类_sqlelchemy 动态model-CSDN博客
1 年前
光明磊落的消防车  ·  spaCy 第二篇:语言模型 - 悦光阴 - 博客园
1 年前
八块腹肌的生菜  ·  Unity脚本引用原理,修复Unity脚本引用丢失,源码脚本与dll中的脚本引用互换 ._51CTO博客_unity脚本之间的变量引用
1 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号