项目使用 react 向借口提交数据, 上传图片传递的是图片的 base64 转码,但是发现上传的有损坏了的图片,js 如何识别出来图片损坏呢~
1
lwbjing 2017-03-07 10:20:40 +08:00
onerror ?
|
2
qiaobeier 2017-03-07 10:28:51 +08:00
1. 创建一个 img 对象
2. 把你的 base64 代码塞到对象体内 3. 瞧瞧高度啥的属性拿到了没 |
3
qiaobeier 2017-03-07 10:30:01 +08:00
更高效的方法是直接验证 base64 字符串。这个应该需要看看文档。
|
4
imn1 2017-03-07 10:31:58 +08:00
这个为何是前端做的?
后端判断啊,还要做安全判断呢 jpg 的结尾字节是 FF D9 |
5
jimliang 2017-03-07 10:43:09 +08:00
1 , img.onerror
2 , img.onload 然后获取 height 或者 width (有些有问题的图片也会触发 onload ,但是 heigth 为 0 ) |
6
IamJ 2017-03-07 13:27:53 +08:00
判断宽或高为 0 的方法根本没用,一些上传损坏的 jpg 加载出来一半是原图,一半是损坏的灰色
|