我在linux里面使用php编辑一个网页,在网页中图片。
我的代码如下
$qqsc="/app/123.jpg";
   
echo "<img src='$qqsc'><br>\n"; 打开失败,是一个红叉。
但是当图片在DOCUMENT_ROOT 设定的目录中的时候就能成功,我想请问这是为什么呢?不知道还有什么方法可以打开并显示图片不?我知道有这种方法可以打开。
$image = open_image('D:\照片\http_imgloadCAB5WKXY.jpg');    
if($image===false)
{die ('不能打开图片');}
header('content-Type:image/jpeg');
imagejpeg($image);
function open_image($file)
{
$im = @imagecreatefromstring(file_get_contents($file));
if($im!==false)
{return $im;}
return false;但是linux里面没装GD库。装那玩意太麻烦了。

解决方案 »

  1.   

    //图片路径不对吧
    $qqsc="/app/123.jpg";  //这样写是绝对路径,123.jpg必须位于网站根目录下的app目录中才能显示
      

  2.   

    //另外,双引号中的变量最好加上{}
    $qqsc="/app/123.jpg";
    echo "<img src='{$qqsc}'><br>\n";
      

  3.   

    汗只要你保存在$qqsc变量中的路径是正确的,那就没有显示不出来的道理啊,你知道哪个是目录是网站根目录吧?
      

  4.   

    pict.php
    <?php
    header('content-Type:image/jpeg');
    readfile('/app/123.jpg');
    ?>html
    <img src='pict.php'>
      

  5.   

    啊。。
    那你在网站根目录下建一个链接吧:
    ln -s /app/ ./app
      

  6.   

    把你访问的网址/IP贴出来看看,公网IP就不要直接贴了,替代说明一下就行
      

  7.   

    我估计楼主的/app目录是网站空间以外的一个目录。。
      

  8.   


    我现在就是假设我的目录是没有变化的。就是在网站根目录以外的一个app目录存放有图片。我就是需要打开这个app目录下面的一个图片!
      

  9.   

    我很怀疑你说的document_root是默认空间的,但你访问的是一个虚拟空间
    我要看你的访问网址就是这个意思
    这样吧,先写个静态的html,不要用你那个“路径变化”的图片,先随便copy一个jpg把上面两个文件分别放在原来php和123.jpg的目录,http运行检查一下这个html有没有问题
      

  10.   


    如果是这样的话,改成这样看看 $qqsc="./app/123.jpg"; 前面加个小数点
      

  11.   

    呵呵
    这位老兄说的也是有道理。
    先谢谢体谅咱这些才接触php的新手们。
      

  12.   


    看你弄linux,也“新”不到哪里去,只是可能不是常用php罢了呵呵,我是两头得罪人啊……调入网站外的文件,唠叨的方法应该可以的,说说用他的方法出现了什么问题?
      

  13.   

    谢谢马甲老哥了。我弄成功了。我是这样处理的,写出来给大家也分享哈。我是把app目录下的每一个用户下面的图片都映射到网站根目录下面的pic文件夹下面相应的用户下面。不过pic和这些用户的文件以及映射命令我都是用exec来处理的。下面给出代码:
    <?php
    exec("mkdir /app/php/pic/$usernamne");
    exec(" ln -s /app/user/$username/qqSrc167763120110427162812.jpg ./pic/$username/qqSrc167763120110427162812.jpg");
    $qqsc="/pic/$username/qqSrc167763120110427162812.jpg";
    echo "<img src='$qqsc'><br>\n"; 
    ?>  其中网站的根目录是php。
      

  14.   

    是啊,我也觉得叨叨老大这个方法更好。动态路径、文件名的话,可以传递两个参数给pict.php,然后在pict.php中拼接好文件的绝对路径就很灵活了。
      

  15.   

    我也打个,网摘一下,linux还没用过,telnet不算用过linux吧?
    只知道操作方式跟以前DOS差不多(当然核心是不同的),DOS用了4年才走进win时代……
      

  16.   

    这样看没用,看字节数跟你服务器原来的123.jpg是否一样
      

  17.   

    $p = getimagesize('http://hi.csdn.net/attachment/201104/28/7752001_1303974630YpsR.jpg');
    print_r($p);Array
    (
        [0] => 43
        [1] => 48
        [2] => 2
        [3] => width="43" height="48"
        [bits] => 8
        [channels] => 3
        [mime] => image/jpeg
    )
      

  18.   


    可能是图片的大小或者CSS问题 
      

  19.   

    晕,好简单吗,就是你的写法有错,
    $qqsc="/app/123.jpg";
           
    echo "<img src='$qqsc'><br>\n";  改写echo "<img src='".$qqsc."'><br>\n"; php写法要求变量和常量合并时,要用“.”合并,不能直接写加在一起