我有一个似乎很常见的问题,但我无法找到任何帮助。假设我有一个经过身份验证的用户将私人照片上传到我的服务器上的不可浏览文件夹。每个用户在大型文件存储中都有自己的文件夹,例如......
/FileStore/{UserId}/照片/my_cute_cat.jpg
文件已上传,我保存照片的缩略图,例如......
/FileStore/{UserId}/照片/Thumbs/my_cute_cat_thumb.jpg
该用户想要下载他们的照片。没问题...
- 用户发送下载请求
- 我授权用户并确保他们拥有该特定照片
- 我提供文件
我需要在用户仪表板上的普通旧 img 标签中显示缩略图。 /Thumbs/ 文件夹未设置为提供静态图像。我不希望 /thumbs/ 文件夹能够提供静态图像,因为它们应该只对授权用户可见。我应该做些什么?
如果它只是一个小缩略图,请考虑使用嵌入式 base64 图像,并在此处提供更多详细信息:如何在 HTML 中显示 Base64 图像? https://stackoverflow.com/questions/8499633/how-to-display-base64-images-in-html
您可以通过将文件编码为 Base 64 格式(如此处解释的字符串)来将 Base64 向下传递到视图:http://www.devcurry.com/2009/01/convert-string-to-base64-and-base64-to.html http://www.devcurry.com/2009/01/convert-string-to-base64-and-base64-to.html
使用这种方法甚至使用 FileActionResult 通过控制器提供文件有一个很大的缺点,即无法使用 CDN 来传送缓存的内容。您可以做的就是仍然静态地提供图像,但给它们提供令人难以理解的长随机名称。当有人向您请求图像时,您只需向他们提供不可猜测的网址即可。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)