当我有 jpg 或 png 图像的图像 URL 时,例如:
当我访问此链接时,它会显示图像。当我右键单击图像并选择“将图像另存为...”时,出于某种原因,它坚持将其另存为 .webp (Google WebP) 图像。
这不仅仅是重命名扩展的问题,它下载并保存的文件实际上是一个webp图像。
无论我做什么,我似乎都无法让我的浏览器以我正在访问的本机格式保存它,即 png 或 jpg(在此示例中为 png)。
这在任何浏览器中都会发生:Chrome、Firefox、Brave、Chromium 等等。
请注意,当我curl <theurl>
从终端执行此操作时,我是获取正确的图像文件。
当我构建自定义脚本来检查 HTTP 标头时,它具有正确的 mimetype(image/jpeg 或 image/png)。这让我想到,显然,完整的浏览器(而不仅仅是某些 curl 脚本)会发送一些Accept
标头或其他内容,这会导致特定的 Web 服务器输出 webp 图像而不是 png 或 jpg,无论 URI 是否明确请求 png 或 jpg。
我确信这种行为有合理的原因,但我并不想这样。有办法解决这个问题吗?
答案1
你需要切换浏览器的用户代理设置。如果 Web 服务器识别出不支持 webp 的旧浏览器,它应该会为您提供 png。
答案2
这实际上不是 Web 浏览器的问题,而是 Web 服务器的问题。当浏览器表示它可以处理 WebP 图像时,一些(确切地说是许多)服务器会发送 WebP 图像,即使 URL 表明它是 jpg 或 png 图像。然后浏览器显示并保存它所获取的内容:WebP 图像。
解决这个问题的简单方法是:复制图像网址(许多浏览器在右键单击弹出菜单中都有这样的项目),然后使用 wget 或 curl 等程序下载图像:
wget http://huppeldepup.png