php下载图片不完整
写了一个简易的下载单张图片的PHP文件:
- PHP code
<!---ecms Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><?php $url = $_POST ['url'];//$url="gallery/ddung/2.jpg";//要下载的图片链接DownImage($url);//下载url指向的图片function Dow<span style="color:transparent">本文来源gaodai#ma#com搞*!代#%^码$网!</span><strong>搞代gaodaima码</strong>nImage($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
还有,前面不能有输出,你的代码最前一行 <?php 前有一行空白,不知你真正里有没有
——解决方案——————–
读图片用file?? 原来图片也是一行一行的…
file_get_contents就行了。