V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
cfan365
V2EX  ›  问与答

前端 js 如何判断图片是否损坏呢?

  •  
  •   cfan365 · 2017-03-07 10:14:48 +08:00 · 4132 次点击
    这是一个创建于 2822 天前的主题,其中的信息可能已经有所发展或是发生改变。

    项目使用 react 向借口提交数据, 上传图片传递的是图片的 base64 转码,但是发现上传的有损坏了的图片,js 如何识别出来图片损坏呢~

    6 条回复    2017-03-07 13:27:53 +08:00
    lwbjing
        1
    lwbjing  
       2017-03-07 10:20:40 +08:00
    onerror ?
    qiaobeier
        2
    qiaobeier  
       2017-03-07 10:28:51 +08:00
    1. 创建一个 img 对象
    2. 把你的 base64 代码塞到对象体内
    3. 瞧瞧高度啥的属性拿到了没
    qiaobeier
        3
    qiaobeier  
       2017-03-07 10:30:01 +08:00
    更高效的方法是直接验证 base64 字符串。这个应该需要看看文档。
    imn1
        4
    imn1  
       2017-03-07 10:31:58 +08:00
    这个为何是前端做的?
    后端判断啊,还要做安全判断呢
    jpg 的结尾字节是 FF D9
    jimliang
        5
    jimliang  
       2017-03-07 10:43:09 +08:00
    1 , img.onerror
    2 , img.onload 然后获取 height 或者 width (有些有问题的图片也会触发 onload ,但是 heigth 为 0 )
    IamJ
        6
    IamJ  
       2017-03-07 13:27:53 +08:00
    判断宽或高为 0 的方法根本没用,一些上传损坏的 jpg 加载出来一半是原图,一半是损坏的灰色
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1028 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:17 · PVG 06:17 · LAX 14:17 · JFK 17:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.