就一行代码<img src="http://img33.dangdang.com/46/8/9040033-1_m.jpg" />
http://img33.dangdang.com/46/8/9040033-1_m.jpg这个图片是存在的,用IE也能打开,但我插到文件里就是不显示,晕死了。把图片保存到本地显示没问题,是不是有什么防盗链的技术啊,请高手指教!

解决方案 »

  1.   

    服务器限制外网引用图片.
    设置user-agent请求就可以得到了.
    header("Content-type: image/jpeg");
    $opts = array(
      'http'=>array(
        'method'=>"GET",
        'header'=>"User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5\r\n"
      )
    );
    $context = stream_context_create($opts);
    echo file_get_contents("http://img33.dangdang.com/46/8/9040033-1_m.jpg",false,$context );
      

  2.   

    这是返回的HEADER信息!
    (Status-Line) HTTP/1.1 403 Forbidden
    Server DnionOS/1.0
    Date Wed, 18 Nov 2009 05:16:58 GMT
    Content-Type text/html
    Connection keep-alive
    Content-Length 1186
    Expires Wed, 18 Nov 2009 05:17:01 GMT
    X-Squid-Error ERR_ACCESS_DENIED 0
    X-Cache MISS from CNC-BJBY-53-165.fastcdn.com
      

  3.   

    多谢jakey9826,是不是要把图片下载到本地文件才可以显示啊?
      

  4.   

    这有好多种方式解决的.
    你可以用一个php专门负责获取图片,有些时间并需要下载,如2楼所示,哪是取固定的图片,带个参数不就动态取图片了吗?
      

  5.   


    不需要下载,怎么用PHP取动态图片啊,刚做这方面的不太懂,请大虾明示,哈!
      

  6.   

    多谢jakey9826,我用PHP怎么显示不了图片啊,就看到一个红叉<?php
    header("Content-Type: image/jpeg");
    $opts = array( 'http'=>array( 'method'=>"GET",  'header'=>"User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5\r\n"  ) ); 
    $context = stream_context_create($opts); 
    echo file_get_contents("http://img33.dangdang.com/46/8/9040033-1_m.jpg",false,$context );
    ?>大虾们帮我看看吧,是不是header还要发别的内容哦,还是别的问题啊?!
      

  7.   

    我写的哪个程序改动一下,
    将图片地址变成可变参数,
    echo file_get_contents($_GET['imgurl'],false,$context );
    保存为getimage.php调用的时候可以这样使用
    getimage.php?imgurl=http://img33.dangdang.com/46/8/9040033-1_m.jpg
      

  8.   

    您是用同样的代码么,怎么我这儿就显示大红叉啊,用IE看图片属性都是“类型:不可用  大小:不可用”,是不是还和服务器设置有关系啊,头都大了!多谢jakey9826指教,我是这么引用的哦,可是图片就是不显示,img里引用还需要注意别的么?
      

  9.   

    NND,终于找到问题了,竟然是文件编码的问题,狂晕!多谢各位,结贴给分!
      

  10.   

    jakey9826真是高手也,下次再请教了哦,哈!