webflux上传下载文件

上传文件

@PostMapping("addAttach")
public Mono<JsonResult> addAttach(@RequestPart("file") FilePart filePart,//获取文件参数@RequestPart("dataId") String dataId,//获取其他参数
){String strFileName = filePart.filename();//获取文件名File file = new File(strNewFilePath);filePart.transferTo(file);//转储文件JsonResult result=……return Mono.just(result);
}

注意:获取文件用RequestPart,接收参数类型为FilePart,同方式的其他参数也需要用RequestPart获取。

下载文件

    @GetMapping("downloadFile")public Mono<Void> downloadFile(Long fileId, ServerHttpResponse response){FFile fFile= fileService.getFile(fileId);if(fFile==null) {return ServerHttpResponseUtil.writeHtml(response,"<html><head><meta charset=\"utf-8\"/></head><body>文件不存在!</body></html>");}else {String strFilePath = fileConfig.getStoreBasePath() + fFile.getStorePath();File file = new File(strFilePath);ZeroCopyHttpOutputMessage zeroCopyResponse = (ZeroCopyHttpOutputMessage) response;try {response.getHeaders().set(HttpHeaders.CONTENT_DISPOSITION,"attachment; filename=" + new String(fFile.getFileName().getBytes("UTF-8"), "iso-8859-1"));//输出文件名乱码问题处理} catch (UnsupportedEncodingException e) {e.printStackTrace();}response.getHeaders().setContentType(MediaType.APPLICATION_OCTET_STREAM);return zeroCopyResponse.writeWith(file, 0, file.length());}}

ServerHttpResponseUtil.writeHtml方法参见webflux databuffer输出_草宝虫的博客-CSDN博客_flux<databuffer>读取数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/416925.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js 数字千分位展示

str.replace(/\d{1,3}(?(\d{3})$)/g,function(s){ return s, })

TCP基础知识 复习

前言 说来惭愧&#xff0c;大二时候学的计算机网络好多都不太记得了&#xff0c;不过还好有认真学过&#xff0c;捡起来也挺快的&#xff0c;就是对于现在业界中使用的网络算法的不是很懂&#xff1b; 1 TCP报文段结构 1.1 序号和确认号 序号&#xff0c;是报文段首字节的字节流…

Ant Design Tabs切换控制

注意点&#xff1a; 1.需要绑定activeKey&#xff0c;而不是defaultActiveKey属性&#xff0c;否则加载完成后无法通过设置state值切换。 2.绑定activeKey后选项卡切换点击无效&#xff0c;需通过点击事件修改state值才行。 切换控制 this.setState({ defaultActiveKey:&qu…

linux安装mongodb(设置非root用户和开机启动)

官网地址&#xff1a;https://www.mongodb.com/ 在官网上选择不同的linux系统得到不同的下载地址&#xff0c;我们用的下载地址是&#xff1a;https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.4.3.tgz 1.mongodb的安装及连接 cd opt/ wget https://fastdl.mon…

Ant Design Tabs标签页隐藏的标签内元素无法获取到

Tabs.TabPane# 参数 说明 类型 默认值 forceRender 被隐藏时是否渲染 DOM 结构 boolean false 修改该值为true即可&#xff0c;该TabPane隐藏也可以渲染dom结构&#xff0c;示例&#xff1a; <TabPane tab"进度分析" key"2" forceRender"…

Mvc NuGet 数据迁移

网上有很多的ef code first 的使用的方式&#xff0c;很乱&#xff0c;下面是我自己整理出来的&#xff0c;有什么不正确的地方还请指正&#xff0c;本人菜鸟一枚&#xff01; 1、新建一个类库 》引用 右击 管理NuGet程序包 添加EntityFramework 类库中就会有添加一个App.conf…

Ant Design Form.Item的label中文字换行的替代方式

const FormItemForm.Item; 替换代码 <Row><div className{styles.label}>{checkItem.desc}</div><div className{styles.wrapper}><FormItem classNamedesc>{getFieldDecorator(check_is_do_${checkItem.id}, {rules: [{required: true,message…

新的编程语言研发契机思考

目前受制于中美贸易战影响&#xff0c;国家大力发展芯片、软件产业&#xff0c;各种类型芯片陆续流出&#xff0c;AI领域、IoT领域、PC和服务器领域芯片在不断出新品。指令集方面&#xff0c;ARM和Intel x86受制于人&#xff0c;RISC-V貌似谈论的很火但也不知是否是未来的趋势&…

numpy加权平均

1 import numpy as np 2 a np.arange(15).reshape(3,5) 3 a array([[ 0, 1, 2, 3, 4],    [ 5, 6, 7, 8, 9],    [10, 11, 12, 13, 14]]) np.average(a, axis0,weights(10, 5, 1)) array([ 2.1875, 3.1875, 4.1875, 5.1875, 6.1875]) axis0 对最外层维度元素计算…

Alibaba Druid连接池接入

maven引入 <dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.17</version> </dependency> <dependency><groupId>com.alibaba</groupId><artifactId>druid-s…

WIN10快捷键

WIN10快捷键 多桌面切换&#xff1a;WIN CTRL ←/→ 桌面横竖屏转向&#xff1a;ALT CTRL ←/→ 转载于:https://www.cnblogs.com/rgqancy/p/6708391.html

ELK搭建及Java程序接入

环境 centos7.5 下载 官网下载Elasticsearch、Logstash、Kibana Free and Open Search: The Creators of Elasticsearch, ELK & Kibana | Elastic 下载 Elastic 产品 | Elastic 我下载的都是7.1.1版本&#xff0c;最好统一版本 &#xff08;注意&#xff0c;这几个都…