写了一个简易的下载单张图片的PHP文件:
<?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 = =
可是我没有限制下载大小啊~
请问大家可能是什么问题呢?

解决方案 »

  1.   

      $fp=file($url);    
      foreach($fp as $fileLine) 
      {
              echo $fileLine;
        }改成这样看看
    echo file_get_content还有,前面不能有输出,你的代码最前一行 <?php 前有一行空白,不知你真正里有没有
      

  2.   

    读图片用file?? 原来图片也是一行一行的...file_get_contents就行了。
      

  3.   

    真正是木有的嗯~谢谢~我去试试看><
      

  4.   


    不好意思是初学者XDDDDD
    我去改改试试哈~谢谢~
      

  5.   

    结贴~~~另外应该是echo file_get_contents不是echo file_get_content嗯- -