显示一些照片,照片存在不可网络直接访问的地方的一个不太好的解决方案 [ 未指定版本 ]
参考:
- http://php.net/manual/en/function.base64-encode.php
- http://blog.csdn.net/samqingqing/article/details/7532141
当你想显示一些照片,但是又不想让非授权用户访问到。我想到了如下这种方式来解决。可有更好的方法?
<?php
$image = 'cannot_access_directly.png';
// Read image path, convert to base64 encoding
$imageData = base64_encode(file_get_contents($image));
// Format the image SRC: data:{mime};base64,{data};
$src = 'data: '.mime_content_type($image).';base64,'.$imageData;
// Echo out a sample image
echo "<img src=\"$src\" alt=\"\" />";
?>
bubifengyun NJSH
注册时间:2014-11-06
最后登录:2022-10-29
在线时长:59小时54分
最后登录:2022-10-29
在线时长:59小时54分
- 粉丝36
- 金钱10
- 威望160
- 积分2200
共 4 条评论
不会这么做吧,性能低,应该可以通过nginx配置解决跨域不让访问
如果在Apache下呢,我是菜鸟不是很懂。
@bubifengyun 最好的解决方案就是用第三方的存储, 这些平台上可以设置那些域名和ip可以访问
@最初的梦想 并不是所有的网络都可以存储在第三平台。谢谢啊
这东西图片一大就不行了,只能少量的存
所以说不是个好的解决方案,期待有更好的。
.htaccess也可以作访问域名限制规则。
谢谢啊,可以说一下具体怎么做的吗
楼主要的是用户认证授权访问,跟域名ip没关系吧。用.htaccess重写,把图片请求转发让php来处理,先认证授权再决定是否显示图片。