>  기사  >  백엔드 개발  >  php下载图片不完整解决方案

php下载图片不完整解决方案

WBOY
WBOY원래의
2016-06-13 13:29:331434검색

php下载图片不完整
写了一个简易的下载单张图片的PHP文件:

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><?php $url = $_POST ['url'];
//$url="gallery/ddung/2.jpg";//要下载的图片链接
DownImage($url);

//下载url指向的图片
function DownImage($url) 
{ 
  $mime=getMime($url);
  header("Content-Type: ".$mime);    
  $ext=getExt($url);
  header("Content-Disposition: attachment; filename=".basename($url) );
  header("Content-Transfer-Encoding: binary");
  $fp=file($url);    
  foreach($fp as $fileLine) 
  {
          echo $fileLine;
    }
}

//获取要下载的图片的MIME信息
function getMime($url)
{
  if(preg_match("/\.(jpg|jpeg)$/",$url))
    return "image/jpeg";
  else if(preg_match("/\.(gif)$/",$url))
    return "image/gif";
  else if(preg_match("/\.(png)$/",$url))
    return "image/png";
  else if(preg_match("/\.(bmp)$/",$url))
    return "image/bmp";
  else
    return "err";
}

//获取要下载的图片后缀名
function getExt($url) 
{
    if(preg_match("/\.(jpg|jpeg)$/",$url))
    return "jpg";
  else if(preg_match("/\.(gif)$/",$url))
    return "gif";
  else if(preg_match("/\.(png)$/",$url))
    return "png";
  else if(preg_match("/\.(bmp)$/",$url))
    return "bmp";
  else
    return "err";
}
?>


提交后别人测试告诉我500k的图片只能下载200K = =
可是我没有限制下载大小啊~
请问大家可能是什么问题呢?


------解决方案--------------------
$fp=file($url);
foreach($fp as $fileLine) 
{
echo $fileLine;
}



改成这样看看
echo file_get_content

还有,前面不能有输出,你的代码最前一行 ------解决方案--------------------
读图片用file?? 原来图片也是一行一行的...

file_get_contents就行了。
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.