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

3 php codeigniter

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

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

这是我的结构:

      application
                - <images_folder>
      system
Run Code Online (Sandbox Code Playgroud)

小智 6

  1. 将所有照片放在应用程序文件夹外的文件夹中

application
assets
assets > images_folder 
system
Run Code Online (Sandbox Code Playgroud)
  1. 在此文件夹上创建.htaccess文件并键入 Deny from all

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


<?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);
    }
}
Run Code Online (Sandbox Code Playgroud)
  1. 对上述功能创建适当的限制,即:检查用户会话等.
  2. 通过控制器访问图像.例如,在你的观点上写道:

<img src="<?=base_url(preview/show_image/img.png)?>" />

希望这可以帮助