javascript - 在 Angular 中,当我不知道扩展名时如何加载图像?
问题描述
我有一个登录页面,我希望能够在上面设置自定义品牌。客户登录后,他们将能够上传 .gif、.jpeg 或 .png 图像,然后在他们注销后在登录页面上使用这些图像。该文件将以通用文件名存储在预定位置,所以我会知道所有这些,我只是不知道上传的是哪种文件格式。
所以基本上,当客户导航到www.example.com/login/:id
应用程序时,将从存储图像的公开可用的安装驱动器加载图像文件。存储图像的已安装驱动器的目录结构将类似于/mnt/resource/client/:id/logo.*
. 客户尚未通过身份验证,因此我将无法访问任何数据库。
我的计划是存储目录/mnt/resource/client
在环境变量中,当登录组件加载时,我将从路由参数中附加 id 和文件名,但此时我不知道扩展名是什么。
有没有办法能够在 html img 标签中加载图像,其位置类似于/mnt/resource/client/0001/logo.*
?此外,logo.[png, jpg, gif]
将是唯一存储在此位置的东西。
编辑:我尝试使用/mnt/resource/client/0001/logo.*
以及/mnt/resource/client/0001/logo
都给出 404。我认为它会,但我想我还是会尝试。
或者,有没有更好的方法来解决/解决这个问题?
另外,如果这是重复的问题,我很抱歉,我试图搜索相关问题,但没有找到任何问题,但也不确定我是否正确地制定了我的搜索查询。
另外,如果有任何我可能遗漏的细节,请告诉我。提前致谢!
解决方案
为了在 html 中加载图像,您必须知道完整路径。
您在这里有几个选择:
- 将完整的图像名称/扩展名存储在数据库中。然后,您的应用程序逻辑将只需要允许从您的登录页面访问“公开”的部分数据库。您的登录页面将请求标准图像路径,例如
example.com/resources/loginImage_clientID
,并且您的服务器将根据该 id 进行数据库查找,并返回正确的图像。 - 对登录图像进行服务器端转换,以便您始终使用相同的扩展名。
我还假设您没有为每个客户端手动上传这些图像,因此大概您已经在某个数据库中获得了完整的图像名称和扩展名,以便您可以验证允许哪个客户端更新哪个图像。
推荐阅读
- sparql - 为什么属性 dbo: leader 在 DBpedia-live 中有过时的值?
- powershell - 将日期时间作为变量而不是 where-object 过滤器传递
- c# - 仅适用于 Naudio 贝司
- python - 我如何从图表中提取数据硒 python
- html - 根据两个布尔变量中的任何一个设置 disabled 属性
- visual-studio-code - 在 Visual Studio Code 中使用 Test Runner UI 运行 Protractor 测试
- sql - 如何提高搜索连接值的 where 子句的 SQL 查询性能
- python - 如何在 CentOS 7.6 上没有 root 权限的情况下为 Python3 安装 pip3?
- angular - Angular 6 - 无法读取 null 的属性“出口”
- javascript - export HTML table