访问Codeigniter中的图像,但将URL限制为非用户

时间:2016-03-23 16:15:48

标签: php codeigniter

我的服务器上有用户在组内上传的图片。 我想通过键入图像的绝对URL来公开限制对这些图像的访问。只有在用户登录系统时才能授予对这些图像的访问权限。

我使用CodeIgniter作为框架,并希望限制在控制器而不是视图上。 现在我无法在视图上获取这些图像。

这是我的结构:

      application
                - <images_folder>
      system

1 个答案:

答案 0 :(得分:6)

  1. 将所有照片放在应用程序文件夹外的文件夹中
  2. application
    assets
    assets > images_folder 
    system
    
    1. 在此文件夹中创建.htaccess文件并输入Deny from all

    2. 创建一个控制器来访问这些图像

    3. <?php
      
      class Preview extends CI_Controller {
      
          function show_image($image_filename) {
      
             $img_path = <path_to_your_img_folder> . $image_filename;
      
             $fp = fopen($img_path,'rb');
                header('Content-Type: image/png');
                header('Content-length: ' . filesize($img_path));
               fpassthru($fp);
          }
      }
      
      1. 对上述功能创建适当的限制,即:检查用户会话等。
      2. 通过控制器访问图像。 例如,在你的观点上写:
      3. <img src="<?=base_url(preview/show_image/img.png)?>" />

        希望这有帮助