在public_html文件夹外的文件夹中显示站点上的图像

时间:2014-02-10 09:29:08

标签: php linux

我正在使用codeingiter并在其中有一个图像目录。由于空间问题,我已将整个目录转移到同一服务器上的新位置。

早期的路径是/ var / www / html / site_folder / assets / images

新位置为/ home / new_site / images

现在,当我想在网站上显示图像时,它没有加载。

我尝试使用以下代码

  

$ file ='/ home / new_site / images / 3.jpg';

     

标题('Content-Type:image / jpeg');

     

echo“< img src ='”。readfile($ file)。“'& glt;”;

我有大约50张图片,我想在我的网站上加载它们。

这适用于本地但不适用于服务器。我在本地使用 Linux ,在服务器上使用 Centos

1 个答案:

答案 0 :(得分:2)

你正在混淆。你想要做的是返回图像文件的内容,但是你返回一个HTML片段。

您可以尝试多种解决方案:

  1. 创建一个指向新图像目录的符号链接,大多数内容都可以保持原样。根据您的Web服务器配置,此迁移或可能不起作用。
  2. 更改所有对图像的引用

    src="image5.jpg"

    到某事

    src="image.php?name=image5.jpg"

  3. 然后你需要脚本“image.php”,它将图像的名称作为查询参数,然后返回内容:

    <?php
        // take care to make some clever checks here
        // otherwise you introduce a security nightmare
        $file = '/home/new_site/images/'  . htmlspecialchars($_GET["name"]);
    
        header('Content-Type: image/jpeg');
    
        readfile($file);
    ?>