使用 Glide 从 URL 加载图像但没有扩展名

Use Glide to load images from URL but without extensions

我可以使用 Glide 通过以下代码从本地 Web 服务器加载图像:

Glide.with(this)
     .load(SERVER_HOST_ADDRESS + userID + ".jpg")
     .into((ImageView) mBinding.getRoot().findViewById(R.id.userImage));

问题是,使用这种方法,我只能访问 .jpg 扩展程序,有时用户可能选择上传不同类型的图像。 有没有办法让 Glide 处理从 URL 加载图像但没有扩展? 构建迭代器会很好,但可能没有必要。

Is there a way for Glide to handle loading an image from a URL, but without the extensions?

是的,尽管您的 Web 服务器可能不支持它。

我的解释是你想要:

.load(SERVER_HOST_ADDRESS + userID)

如果您的 Web 服务器在 URL 提供具有有效图像 MIME 类型的图像,Glide 将处理它。 Glide 本身不关心文件扩展名——它需要一个提供有效图像 MIME 类型的有效 URL。

但是,我猜您的服务器 return 会针对 URL 出现 404 错误,因为 服务器 需要文件扩展名,与服务器上的文件匹配。

处理此问题的选项包括:

  • 教服务器如何处理 no-extension URL

  • 使用一致的图像类型(例如,让服务器将所有内容转换为 JPEG)

  • 有一些元数据告诉您要加载什么 URL(例如,获取用户详细信息的 Web 服务调用有一个 JSON 属性,它提供图片 URL)

  • 按照您的建议进行操作,然后遍历各种可能性,看看其中一种是否可行