You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chrome移动端(Android5.1/6)打开文件上传对话框崩溃求助

解决方案:Android 5.1/6下Chrome 66打开图片上传对话框崩溃问题

我之前碰到过一模一样的兼容性坑,针对你描述的场景——Android 5.1/6系统、Chrome 66.0.3359.139版本,使用<input type="file" accept="image/*">触发浏览器崩溃,而且已经在4台设备上验证过,这里给你几个亲测有效的解决方案:

  • 缩小accept属性的匹配范围
    旧版本Chrome对image/*这种通配符类型的解析存在bug,会在遍历系统图片类型时触发崩溃。你可以换成具体的图片MIME类型,比如:

    <input type="file" accept="image/jpeg,image/png,image/gif">
    

    这样只匹配常见的图片格式,避免浏览器不必要的类型遍历。

  • 移除accept属性,改用前端JS校验
    如果指定具体类型还是不行,干脆去掉accept属性,把类型校验放到JavaScript里做:

    const fileInput = document.querySelector('input[type="file"]');
    fileInput.addEventListener('change', function(e) {
      const selectedFile = e.target.files[0];
      // 校验是否为图片类型
      if (!selectedFile || !selectedFile.type.startsWith('image/')) {
        alert('请选择有效的图片文件哦');
        fileInput.value = ''; // 清空错误选择
        return;
      }
      // 这里写你的后续上传逻辑
    });
    

    这种方式完全绕开浏览器内置的类型筛选逻辑,从根源上避免触发崩溃bug。

  • 临时替代方案:调整浏览器版本或换用其他浏览器
    如果业务场景允许,可以建议用户把Chrome升级到67及以上版本(这个版本修复了不少旧版的文件上传bug);或者测试下系统自带的浏览器,大部分原生浏览器在旧Android系统上的文件上传兼容性会更好。

  • 排查页面其他代码的冲突
    有时候页面里的其他JS代码(比如第三方上传插件、自定义的文件监听逻辑)可能和这个input元素产生冲突。你可以先在一个干净的空白页面里只放这个input测试,如果没问题,再逐步加回其他代码排查问题点。

这些方案里,前两种是我解决这类问题时最常用的,成功率很高,你可以优先试试。

内容的提问来源于stack exchange,提问作者babazs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:46:41