用dedecms的下载类 远程下载图片到本地失败 局域网内的图片可以下载成功 外网的图片无法下载?
如果把$url改为外网地址,就没有任何反应
完整的代码如下——
http://my.csdn.net/my/code/detail/27411 可直接复制代码
<?php
$url="http://127.0.0.1:8181/images/avatar/avatar_0.jpg";
$rndtrueName="F:/wamp/www/zc/image/avatar_0.jpg";
getremoteimage( $url, $rndtrueName );
function getremoteimage( $url, $rndtrueName )
{
//echo $url;// http://www.golffactorystore.com/images/200910/goods_img/599_P_1255757135855.jpg
$revalues = array( );
$ok = false;
$htd = new dedehttpdown( );
$htd->openurl( $url );
echo $htd->openurl( $url );
//$htd->gethead=get_headers($url);
$sparr = array( "image/pjpeg", "image/jpeg", "image/gif", "image/jpg", "image/png", "image/xpng", "image/wbmp" );
//echo $htd->gethead( "content-type" );
if ( !in_array( $htd->gethead( "content-type" ), $sparr ) )
{
// echo "1";
return "";
}
make_dir( dirname( $rndtrueName ) );
$itype = $htd->gethead( "content-type" );
echo 'lzdc';
$ok = $htd->savetobin( $rndtrueName );
if ( $ok )
{
$data = getimagesize( $rndtrueName );
$revalues[0] = $rndtrueName;
list( , $revalues[2], $revalues[2] ) = $data;
}
$htd->close( );
if ( $ok )
{
return $revalues;
echo '77';
}
return "";
}
function make_dir( $folder )
{
$reval = false;
if ( !file_exists( $folder ) )
{
@umask( 0 );
preg_match_all( "/([^\\/]*)\\/?/i", $folder, $atmp );
$base = $atmp[0][0] == "/" ? "/" : "";
foreach ( $atmp[1] as $val )
{
if ( "" != $val )
{
$base .= $val;
if ( ".." == $val || "." == $val )
{
$base .= "/";
}
else
{
$base .= "/";
if ( file_exists( $base ) || !@mkdir( @rtrim( $base, "/" ), 511 ) )
{
@chmod( $base, 511 );
$reval = true;
}
}
}
}
}
else
{
$reval = is_dir( $folder );
}
clearstatcache( );
return $reval;
}
class DedeHttpDown
{
省略掉dede的代码,详细链接http://my.csdn.net/my/code/detail/27411
}
?>