2014-02-10 102 views
0

我正在使用codeingiter并在其中有一个图像目录。由于空间问题,我已将整个目录转移到同一服务器上的新位置。从public_html文件夹外的文件夹在网站上显示图像

早些时候路径是在/ var/www/html等/ site_folder /资产/图像

新位置是/ home/NEW_SITE /图像

现在,当我想显示在网站上其没有得到载入图像。

我已经使用下面的代码

$文件= '/home/new_site/images/3.jpg' 尝试;

header('Content-Type:image/jpeg');

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

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

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

回答

2

你在搅拌东西。你想要做的是返回图像文件的内容,但你返回一个HTML片段。

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

  1. 创建符号链接到新的图像目录,大部分事情可以保持原样。根据您的Web服务器配置,此迁移或可能无法运行。
  2. 切换到图片的所有引用从

    src="image5.jpg"

    的东西

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

然后,你需要这需要的名字脚本 “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); 
?> 
+0

嗨,你的意思是说,我将不得不创建一个文件image.php,并在其中放置代码$ file ='/ home/new_site/images /'。用htmlspecialchars($ _ GET [ “名称”]); header('Content-Type:image/jpeg'); readfile($ file); –

+0

是的,您必须将原始图像数据传递给浏览器。脚本没有经过测试,但它应该给你一张图片如何完成。 – ViToni

+0

因此,如果有100个图像,那么我将不得不写一个foreach ..? –

相关问题