记一次前后端文件交互问题

Image by Dimitri Houtteman from Pixabay

前言

本篇文章不谈技术,纯谈感想;

正文

目前的工作是前后端都需要自己做,不过,前端使用的框架是封装的,开发也不需要太多美观,能用就行;最近就遇到了一个前后端文件流的问题;

问题

先说大概的情况吧:A服务需要调用远程服务B的b1接口,该接口返回某pdf文件的base64字符串;前端项目C的页面c1通过请求A服务a1接口下载或预览该pdf文件;

思路

当时第一想到的就后端直接解码,生成文件流,然后放入输出流;而且还这样做了,然后回头做前端的时候发现怎么都拿不到后端的输出流数据(前端使用的封装框架,封装的又没满足这个场景的功能,就只能自己去实现了,而且自己又对前端不熟,只会简单的使用),而且获取到的数据又无法生成PDF,关键是不知道是哪一个步骤出了问题:1,获取的数据是否正确,2.获取的数据格式是否需要转换。最后就卡在那里了,搞了一下午,只有晚上加班了。。。。。

下班之前就是问了项目负责人,负责人又给了我另一个思路:直接将base64字符串返回前端,前端进行解码,然后在由前端生成pdf;我晚上加班就照这样做了,不过解码后还是无法生成PDF,这时候我就知道是格式问题了,所以很快就在网上找到了相应的解决办法;

最后

上边只是简简单单的几句话就说完了,这个问题还是花了我整整一下午加一晚上的时间,中途也出现了其他的一些问题,这里就不细说了;感叹专业知识与经验的不足,还需继续努力。

这让我又想起了在上一家公司遇到的一模一样的问题,由于当时是两端分离的,我们两端之间的联调一直无法连通,最后还是交给别人去完成了。。。
这也成了我当时最大的痛点。。。。。

总结

  1. 解决问题之前,一定要多想几种办法(解决方案),一种不行就换下一种,不要过多停留于不行的方法,事后总结问题;
  2. 要有耐心,遇事冷静,思路要清晰,慌乱中出错是必然的;苟住就是胜利;
  3. 沟通很重要,及时沟通,及时发现问题,早发现,早解决;
  4. 专业知识和经验也很重要,也许别人一眼望穿,你可能很久都望不穿;
  5. 总结关键字,以关键字去搜索问题,会更快的搜到你所希望搜到的东西;

参考

  1. base64位的pdf流,生成pdf文件
  2. js把base64转为可下载文件
  3. pdf.js预览pdf文件流(base64)
坚持原创技术分享,您的支持将鼓励我继续创作!