我正在使用codeigniter 2.1.3,我在/ home文件夹中有网站外的图像,无法显示图像

时间:2013-02-20 20:36:40

标签: php codeigniter codeigniter-2

我正在使用Codeigniter 2.1.3,我在/ home文件夹中有网站外的图像,无法显示图像。

 <img src="<?php echo img('/home/pedro/iagora.jpg');?>" title="" alt="avatar_<?php echo $project['id']; ?>" width="120" height="80"/>

我试过了:

     <img src="<?php echo '/home/pedro/iagora.jpg';?>" title="" alt="avatar_<?php echo $project['id']; ?>" width="120" height="80"/>

     <img src="/home/pedro/iagora.jpg" title="" alt="avatar_<?php echo $project['id']; ?>" width="120" height="80"/>

但这些都不起作用。

3 个答案:

答案 0 :(得分:0)

如果文件位于Web根目录之外,则无法通过HTTP正常访问它们。您需要编写一个PHP脚本来为您输出图像:

<img src="/get_image.php?i=iagora.jpg" title="">

/get_image.php将是检索图像并为您输出图像的PHP文件。 i参数将是您想要的图像的名称。

该文件看起来像:

<?php
    $file_name = $_GET['i'];
    $file = '/home/pedro/' . $file_name;

    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename=' . basename($file));
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    ob_clean();
    flush();
    readfile($file);
    exit;
?>

答案 1 :(得分:0)

我建议你在基础文件夹中创建文件夹“assets”。在“资产”中,您将存储js,css,上传图像和所有其他内容。在这种形式下,您可以更好地组织您的应用程序

之后,您可以使用base_url()加载图像。 例如:

<img src="<?php echo base_url(); ?>assets/your_folder/your_image.jpg" title="" alt="avatar_<?php echo $project['id']; ?>" width="120" height="80" />

答案 2 :(得分:0)

我将脚本文件保存在网站的根目录上,现在正在运行

<img src="<?php echo base_url().'get_image.php?i='.$images_thumb_dir.$project['avatar'];?>" title="" alt="avatar_<?php echo $project['id']; ?>" width="120" height="80"/>

感谢 佩德罗