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

php中文网
发布: 2016-06-13 13:29:33
原创
1594人浏览过

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就行了。
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号