php 一个图片我想设置权限,让有权限的用户可以打开。 怎样防止用户找到这个图片的绝对地址后直拉打开

php 一个图片我想设置权限,让有权限的用户可以打开。 怎样防止用户找到这个图片的绝对地址后直拉打开。

class imgdata{  
        public $imgsrc;  
        public $imgdata;  
        public $imgform;  
        public function getdir($source){  
                $this->imgsrc  = $source;  
        }  
        public function img2data(){  
                $this->_imgfrom($this->imgsrc);  
                return $this->imgdata=fread(fopen($this->imgsrc,'rb'),filesize($this->imgsrc));          
        }  
        public function data2img(){  
                header("content-type:$this->imgform");  
                echo $this->imgdata;  
                //echo $this->imgform;  
                //imagecreatefromstring($this->imgdata);  
        }  
        public function _imgfrom($imgsrc){  
                $info=getimagesize($imgsrc);  
                //var_dump($info);  
                return $this->imgform = $info['mime'];  
        }   
}  
$n = new imgdata;  
$n -> getdir("1.jpg");  //图片路径,一般存储在数据库里,用户无法获取真实路径,可根据图片ID来获取
$n -> img2data();  
$n -> data2img();

这段代码是读取图片,然后直接输出给浏览器,在读取和输出之前,进行用户权限判断。

追问

意思是路径跟文件名。弄得复杂一点,让他不好找到吗。 但是直接打开目录,就可以看到里面的文件了。

追答

不是。
我这里说的PHP读取图片,不是指读取路径,而是指读取图片的内容,然后通过
Header();输入图片类型,比如 gif png jpg等,下面输出图片的内容,所以用到了fread()

实际上,你看到 image.php?id=100 就是显示这张图片在浏览器上,而你查看源文件,看到的不会是图片的路径,而是乱码似的图片内容。

追问

但是服务器上总会有一个存在图片的地方。 他要是找到了这个地方,直接打开。怎 么限制。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-12
,楼主找的可能和这个沾点边。但是需要靠登录来判断的话,我没做过,但是想了想,RewriteRule \.(gif|jpg)$ [R,L] ,既然把直接的文件请求重定向了,那我们也可以重定向到一个php文件,此文件来判断用户是否为登录状态,看情况发送图片。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网