input['file']accept="image/*" 用 Chrome 打开对话框太慢了

2024-01-03

当我使用<input type="file" accept="image/*"/>使用 Chrome,它打开对话框的速度非常慢(在 Mac 10.11.6 和 Chrome 52.0.2743.116 64 位上超过 10 秒)。

但是当我删除accept="image/*",就变得正确了。我查看了我的 Facebook 页面,效果很好。有什么不同?

我的 Chrome 上 Stack Overflow 的图片上传也变得很慢。

我的 Chrome 会发生什么情况?我测试过别人的Chrome,没问题……


2017 年 7 月更新:这被确认为bug https://bugs.chromium.org/p/chromium/issues/detail?id=638874在 Chrome 中,它是fixed https://chromium-review.googlesource.com/c/514582/ now.

这个bug的根本原因是:Chrome的安全浏览功能将在上传或保存时检查文件。如果到谷歌服务器的互联网连接速度很快,那就没问题了。但如果连接速度慢或断线,安全浏览会让 Chrome 挂起几秒钟,直到检查完成或超时。

Using accept="image/png, image/jpeg, image/gif"将解决此问题,因为 MIME 类型image/png, image/jpeg, image/gif位于白名单中安全浏览——不需要检查。然而,对于accept="image/*" or accept=".apk",因为它不在白名单中,安全浏览将触发检查并挂起 Chrome。

这个错误已经被fixed https://chromium-review.googlesource.com/c/514582/跳过上传检查。

注:以上信息是我从一位中国人那里得到的article https://zhuanlan.zhihu.com/p/27946188作者:王磊,灵感来自于@cute_ptr 的回答。感谢王磊,我认为@cute_ptr的回答值得一票。


更新:感谢@xiefei 的评论,最终解决方法将会:<input type="file" name="imgFile" accept="image/png, image/jpeg, image/gif">。如有必要,可以附加其他图像 MIME 类型。


这个错误在我的机器上重现:Mac + Chrome +<input type="file" accept="image/*">。这似乎是 Mac 上的 Chrome 错误accept使用 属性,因为它不会在 Windows 环境或其他浏览器上重现。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

input['file']accept="image/*" 用 Chrome 打开对话框太慢了 的相关文章

  • 如何强制折断不可折断的字符串?

    我有一个根据数据库中包含的数据生成的 HTML 页面 数据库有时包含浏览器无法分解的长字符串 因为这些字符串不包含可分解的字符 空格 点 逗号等 有没有办法使用 html css 甚至 javascript 来解决这个问题 看到这个link
  • R Shinydashboard 自定义 CSS 到 valueBox

    我一直在尝试将 valueBox 的颜色更改为自定义颜色 超出 validColors 中可用的颜色 但一直无法这样做 我知道有一种方法可以使用标签来包含自定义 CSS 但是我无法将它们放在正确的位置 ui lt dashboardPage
  • 使用 CSS 覆盖透明 div 中的不透明文本

    我试图使透明 div 内的文本没有不透明度 也就是全黑 div style background 3cc p style background 000 This text should be all black p div 只用 CSS 就
  • Outlook 2013 渲染问题:嵌套表格截断相邻文本

    在开发 html 电子邮件通讯时 我经常使用类似于以下的结构 table width 244 border 0 cellpadding 0 cellspacing 0 tr td table border 0 align left tbod
  • 如何使用 JavaScript 获取元素的填充值?

    我有一个textarea在我的 HTML 中 我需要获取整数或浮点形式的填充数值 以像素为单位 我如何使用 JavaScript 获取它 我没有使用 jQuery 所以我正在寻找纯 JavaScript 解决方案 这将返回padding l
  • 不使用控件时,视频元素在 Chrome 中消失

    So I think这是一个浏览器错误 它出现在一个更复杂的设计 网站中 但我已经进行了很好的尝试 简化了我的代码和设计等 并发现了以下内容 嵌入时
  • 使用 VBA 通过 Access 导航网页/操作 IE

    你好 StackOverflow 社区 我有一个关于使用 Access VBA 操作 IE 的问题 本质上 我正在尝试编写代码 使用 IE 打开特定网页 在该页面中搜索特定链接 目标链接的名称将取决于用户的情况 通过以编程方式单击该链接导航
  • 应用旋转时,HTML5 canvas Clip() 在 Chrome 中不起作用

    我试图在画布上使用剪辑区域 一旦坐标系旋转任何非零值 它就会停止工作 window onload function var canvas document getElementById mainCanvas var ctx canvas g
  • 从 MVC 中的 FormCollection 获取选定的下拉列表值

    我有一个使用 MVC 发布到操作的表单 我想从操作中的 FormCollection 中提取选定的下拉列表项 我该怎么做 我的 HTML 表单
  • JSF 2.1 中的 HTML 4 <按钮>

    我想使用以下命令 The JSF
  • 如何倾斜 div 并保持背景图像不倾斜

    我已经花了几个小时了 所以希望有人能提供帮助 我有一个网站 其中大部分 div 都是倾斜的 大多数 div 都包含背景图像 现在我已经让 div 倾斜了 内容完美地位于其中 唯一的问题是背景图像 它与父级一起倾斜 我用谷歌搜索了很多 但找不
  • 调整文本区域大小

    我需要使用文本区域来显示一些文本 问题是 如果我放置 4 5 行文本 就会出现滚动条 如何使用 CSS HTML 使文本区域与其内容一样大 没有滚动条 文本区域不需要动态更改其大小 我仅使用它来显示文本 我也可以使用禁用的文本区域 我希望文
  • Modernizr - 加载 polyfills / 使用自定义检测的正确方法

    我想在网页上使用一些新的 HTML5 表单属性和输入类型 有些浏览器已经支持它们 有些浏览器不支持 也永远不会支持 这就是我想使用 Modernizr 的原因 这就是我的麻烦开始的原因 据我了解 Modernizr 本身并不是一个 poly
  • 防止浮动换行,直到元素达到最小宽度

    我有可变宽度的 HTML 布局 内容左侧有一个固定宽度的菜单 div 可变宽度 由 css max width 和 min width 设置 对于非常窄的浏览器窗口 我希望内容包裹在菜单下方 我目前通过设置来实现这一点float left在
  • iOS7 中“-webkit-overflow-scrolling: touch” 最初的屏幕外元素被破坏

    既然转基因种子已经发布了 我们现在可以谈谈了 看起来 iOS7 中的 webkit overflow scrolling touch 已损坏 最初不在屏幕上的元素的触摸事件不会触发 或者在某些情况下只是不可靠 这是一个例子
  • Google Chrome 106 可拖动导致元素消失

    使用拖放元素时 绝对定位元素中包含的大多数其他元素都会从屏幕上消失 如果我调整窗口大小 这些元素会出现 但在开始拖动时会再次消失 我在最新版本的 Google Chrome 106 和 Beta 版本 107 0 5304 18 以及现在的
  • 我可以停止 :hover 应用于元素吗?

    假设我有一些 CSS button hover font weight bold 我怎样才能防止 hover随意应用样式 我的目标用例是当元素被禁用时 例如 使用这个 HTML
  • JSTL 在循环中每 5 个字段集创建一个新行

    您好 我目前正在迭代并在表中显示字段集列表 为了让布局变得更得体一些 我想在每次循环到达第五个字段集时创建一个新行 谢谢 JSP div class det table class det tr td td tr table div
  • 悬停时为 SVG 制作动画

    我正在尝试在悬停时为 SVG 文件设置动画 默认情况下 它可以使用 svg 函数实现出色的动画效果 例如
  • 防止文本区域出现新行

    我正在开发聊天功能 使用 Vue 并使用文本区域作为输入 以便溢出换行 并且对于编写较长消息的用户来说更具可读性 不幸的是 当用户按下 Enter 键并提交时 光标会在提交之前移动到新行 从而使用户体验感觉不佳 关于如何使用普通 Javas

随机推荐

  • 根据 WooCommerce 中的产品或类别隐藏特定运输选项

    我的 WooCommerce 网站使用 3 种不同的运输类型 皇家邮件签收 7 天 保证第二天 已记录的交付 有些产品只能使用选项 1 发货 当该产品添加到购物车时 我创建的运输类别有助于在购物车中显示选项 1 但其他两个选项仍然可见 不允
  • 如何在 Mac 中打开 conda shell

    我是 conda 和 mac 的新手 我主要使用 Ubuntu 和 pip mac 上有 conda shell吗 我想我在某处读到没有 如果是这种情况 我该如何运行如下命令 conda env create f environment y
  • 将图像数据存储在 MySQL 数据库中?

    我正在实施一个处理大量图像的项目 您认为以下两种方法的优缺点是什么 我需要存储数千个项目 每个项目作为多个字符串属性和一个图像 每个项目作为 ID 整数 MyISAM 表 How would you store the images 方法1
  • Android和PHP登录认证

    我正在尝试在 android 上制作一个应用程序 其中用户需要登录应用程序才能使用它 登录验证将由 PHP Web 服务完成 我有一个login java class CustomeHTTPClient这是我从互联网上获得的示例代码 有一种
  • 提高字典模糊字符串匹配的性能

    所以我目前正在使用第二弦 http secondstring sourceforge net 对于模糊字符串匹配 我有一个大字典可以比较 字典中的每个条目都有一个关联的非唯一标识符 我目前正在使用 hashMap 来存储这本字典 当我想要进
  • 需要加入列表的元素,但加入后保留元素周围的 ''

    我的清单是 example a b c 如果我使用 join example 去除 围绕元素 我希望我的输出是 example a b c 有什么优雅的方法可以做到吗 不确定它是否优雅 但它可以工作 基于默认表示list对象 因此根本不灵活
  • Google App Engine——Java 还是 Python? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我注意到这是在以下帖子 https stackoverflow com questions 1085898 choosing java vs p
  • 如何使用 vue-i18n 加载我真正需要的语言文件?

    使用 vue i18n 可以很容易地翻译你的 Vue js 应用程序 但随着项目的增长 您不想加载所有语言的所有消息 大多数用户从不切换语言 我们为每种语言都有单独的域 并且切换语言的情况极为罕见 所以 vue i18n 似乎支持延迟加载
  • Kubernetes 上的多代理 Kafka 如何设置 KAFKA_ADVERTISED_HOST_NAME

    我当前包含 3 个 Kafka 代理的 Kafka 部署文件如下所示 apiVersion apps v1beta1 kind StatefulSet metadata name kafka spec selector matchLabel
  • 如何在 Android 中在按钮上显示动态文本并自动调整其大小?

    我正在开发一个项目 需要我根据用户在按钮上的选择来显示一些动态文本 我知道如何进行文本显示部分 但我一直困惑于如何在固定大小的按钮上正确显示不同的文本 例如 苹果 和 我有一个苹果 如何才能达到显示 苹果 时文字尺寸变大适合按钮 而显示 我
  • pylint 1.4 报告所有 C 扩展上的 E1101(无成员)

    我们一直是pylint 它的静态分析已经成为我们所有 python 项目的关键部分 并且节省了大量的时间来追踪隐藏的错误 但从 1 3 gt 1 4 升级后 几乎所有编译的 c 扩展都会导致 E1101 no member 错误 之前运行完
  • 如何在Python中合并两个嵌套的字典?

    我有两个嵌套的字典数据 我想将它们合并以在 python 中创建一本字典 词典数据 dict1 employee dev1 Roy dict2 employee dev2 Biswas 现在我试图用它们创建一个像下面这样的字典 所需输出 d
  • 从文件路径中提取文件扩展名

    如何提取给定文件路径的文件扩展名作为字符 我知道我可以通过正则表达式来做到这一点regexpr alnum x 但想知道是否有内置函数可以处理这个问题 使用 R 基本工具很容易找到这种东西 例如 路径 无论如何 加载tools打包并读取 f
  • 允许使用 docker-machine 配置的主机中存在不安全的注册表

    有没有什么可以配置的 允许不安全 ssl用于使用 docker machine 创建的 docker 守护进程 命令 docker machine create driver virtualbox dev eval docker machi
  • 不同状态下不同的词法分析器规则

    我一直在为 HTML 中嵌入的某些模板语言 FreeMarker 开发解析器 例如 abc h1 Welcome user lt if user Big Joe gt our beloved leader h1 p Our latest p
  • 是否可以创建一个没有 EOF 标记的文件?

    我们有一个读取平面文件并解析数据的应用程序 该文件不包含用于进行校验和的标头信息或总数据 所以我想创建测试用例以确保我们的应用程序正确处理 不完整 文件 有没有办法创建没有 EOF 标记的平面文件 也许有一个工具可以用来从现有文本文件中删除
  • 仅允许管理员删除文件?

    我正在编写一个 C 应用程序 我想设置 在应用程序启动时 权限 以便只有管理员才能删除应用程序使用的文件 所有其他用户不应删除它或修改其权限 应保护该文件免受标准文件系统使用的影响 因此 除了管理员之外 没有人可以删除它 只有管 理员应该能
  • DOMDocument::loadHTMLFile() 修改用户代理

    我使用 PHP 在 DOM 树中加载网站 有没有办法修改使用发送的用户代理DOMDocument loadHTMLFile function parseThis url html new DOMDocument html gt loadHt
  • 在 Android 应用程序中播放背景声音

    我想在我制作的应用程序中播放背景声音 帮我看看我该怎么做 这是完整的代码 public class Numbers extends Activity public static MediaPlayer mp null Override pr
  • input['file']accept="image/*" 用 Chrome 打开对话框太慢了

    当我使用