加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 使用codeigniter在webroot之外提供图像

发布时间:2020-12-13 16:52:16 所属栏目:PHP教程 来源:网络整理
导读:我正在使用Codeigniter并将上传的文件存储在Web根目录之外作为安全预防措施,以便无法从浏览器等直接访问它们或上传文件夹. 我的结构是这样的: private|_application|_system|_uploadspublic_html|_index.php 我的问题是,是否有Codeigniter功能,类似于CakePH
我正在使用Codeigniter并将上传的文件存储在Web根目录之外作为安全预防措施,以便无法从浏览器等直接访问它们或上传文件夹.

我的结构是这样的:

private
|_application
|_system
|_uploads
public_html
|_index.php

我的问题是,是否有Codeigniter功能,类似于CakePHPs sendFile我可以用来提供图像.

我知道我可以将图像存储在Web根目录中并将上传类型限制为图像,但我不想这样做.

我也知道我可以编写一个image.php样式脚本,它接受文件路径并返回一个图像标题,但在我走这条路线之前,我想知道是否有一个更好的/预定义的方法来专门用CodeIgniter做这个?

解决方法

我建议你制作一个带有处理图像请求功能的控制器.

简单的例子:

<?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') ?>" />

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读