跳到主要内容

二进制流导致乱码问题记录

之前做一个需求,很简单,文件上传下载的问题,本来最方便的方案是用FormData直接把文件流写入传给后端,但是后端因为不知道什么原因不想用formData,需要前端传入文件流的base64内容,然后他们自己来解析base64的内容然后存入文件,然后发现总是会乱吗,因为这个文件后端要解析做一些操作,我们一直排查问题,不知道是文件内容问题还是文件解析时候的问题。后来我和后端查了好久发现是因为前端传入的时候把content-type传进去了导致解析额出错。

于是我把‘,’前面的内容去掉,最后一切恢复正常。

然而事情并没有那么简单,我心想,我写的是参考的另一个页面的文件上传和下载,这些都是通用的内容,为什么会不一样呢,他那里并没有去掉content-type,却也能正常上传和下载。我也去控制台看了下,发现另一个页面确实有content-type内容:

image.png

我自己的页面传的时候就没有:

image.png

这个就是一个很常见的系统内的不统一问题,因为这两个接口不是同一个人开发的,但是这种上传下载的接口的实现如非必要,就要用统一的一个公共方法去实现,这样会让一个系统更加的统一,一个系统的统一,不光是用户层面的,还有系统自身的统一,如果用户使用统一,但是系统实现的七零八落,最终结果就是系统很快的腐朽然后无法维护。

Loading Comments...