java restful文件传输_【Java】前后端分离restful风格后端如何传文件给前端提供导出word功能...

这篇博客讨论了如何在Java RESTful应用中实现在后端动态生成Word文件并供前端下载。建议后端生成文件,前端通过设置Accept头来指定下载格式。如果改动较大,可以设计POST接口处理异步生成,完成后通知前端进行下载。
摘要由CSDN通过智能技术生成

后端已经实现了从数据库读取数据然后生成word的功能,问题是如何让前端能下载这个word

而且这个word是动态生成的,每次访问得到的数据都不一样。

目前的形式是所有的数据都由后端生成json传给前端

回答

给个提示性思路,我没有试过。

是给后端做,后端生成一个word 文件,前端直接去下载这个文件就可以了。后端生成word文件技术,网上一艘就有,前端下载文件技术网上也非常多。

前端生成word文件,然后导出。前端生成word肯定用插件(自己写很难),我不知道有没有这个插件,得好好找。

建议是第一种方案,技术都成熟,而且如果word特别大的化,前端抗不住。

这个感觉和平常都一样吧,后台根据数据生成Word文件,写入响应中,设置响应头。

这个问题分两部分,设计和实现。

设计上,我觉得有必要讲下 RESTful 里很重要的一点

误区:URL 带 .json 后缀

我们经常设计出这样的接口:

/api/users.json

/api/users/1.json

实际上这样是不规范的。

在 RESTful 风格中,URL 只指定访问的资源,不指定其表现状态。

也就是说,我的 /api/users/1 应该只表示我想要访问 id=1 的 User,而不指定服务端会返回给我 json 还是别的格式比如 xml。

使用 Accept 和 Content-Type headers 来指定资源的表现状态。

上述接口规范的形式应该是:

URL: /api/users/1

Headers:

Accept: application/json

所以,设计你要的这个接口,它的 URL 应该和前端请求这份数据 json 的 URL 相同,而在 header 中指定 Accept 为 word 文档的 MIME Type。

如果这样规范化代价太大

比如你们的系统已经有很多接口,全部改成规范的很麻烦,那么还有一种差不多 RESTful 的设计方案。

设计如下接口:

POST /api/xxx/docs

注意要用 POST,原因自己体会下应该能明白。

第二点,实现上,用库。

如果生成操作比较耗时,可以通过异步处理, 即把生成的文件以用户为单位保存成列表,然后在生成功能时以某种方式,(可以是websocket,也可以是轮询)等处理完了,弹出文件下载列表。至于服务器端成的文件,可以通过servlet或者nginx等直接提供下载即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值