我正在使用Codeigniter并将上传的文件存储在Web根目录之外作为安全预防措施,以便无法从浏览器等直接访问它们或上传文件夹。
我的结构是这样的:
private
|_application
|_system
|_uploads
public_html
|_index.php
我的问题是,是否有Codeigniter功能,类似于CakePHPs sendFile我可以用来提供图像。
我知道我可以将图像存储在Web根目录中并将上传类型限制为图像,但我不想这样做。
我也知道我可以编写一个image.php样式脚本来获取文件路径并返回一个图像标题,但在我沿着那条路走下去之前,我想知道是否有更好/预定义的方法来使用CodeIgniter具体?
答案 0 :(得分:3)
我建议您使用处理图像请求的函数创建一个控制器。
简单示例:
<?php
class Img extends CI_Controller {
public function jpg($file)
{
// validate $file here, very important!
$path = '../../uploads/' . $file;
header('Content-type: image/jpeg');
readfile($path);
}
}
?>
现在你可以将你的img src指向:
<img src="<?php echo base_url('img/jpg/myimage.jpg') ?>" />