<?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 = =
可是我没有限制下载大小啊~
请问大家可能是什么问题呢?
5 个解决方案
#1
$fp=file($url);
foreach($fp as $fileLine)
{
echo $fileLine;
}
改成这样看看
echo file_get_content
还有,前面不能有输出,你的代码最前一行 <?php 前有一行空白,不知你真正里有没有
foreach($fp as $fileLine)
{
echo $fileLine;
}
改成这样看看
echo file_get_content
还有,前面不能有输出,你的代码最前一行 <?php 前有一行空白,不知你真正里有没有
#2
读图片用file?? 原来图片也是一行一行的...
file_get_contents就行了。
file_get_contents就行了。
#3
真正是木有的嗯~谢谢~我去试试看><
#4
不好意思是初学者XDDDDD
我去改改试试哈~谢谢~
#5
结贴~~~另外应该是echo file_get_contents不是echo file_get_content嗯- -
#1
$fp=file($url);
foreach($fp as $fileLine)
{
echo $fileLine;
}
改成这样看看
echo file_get_content
还有,前面不能有输出,你的代码最前一行 <?php 前有一行空白,不知你真正里有没有
foreach($fp as $fileLine)
{
echo $fileLine;
}
改成这样看看
echo file_get_content
还有,前面不能有输出,你的代码最前一行 <?php 前有一行空白,不知你真正里有没有
#2
读图片用file?? 原来图片也是一行一行的...
file_get_contents就行了。
file_get_contents就行了。
#3
真正是木有的嗯~谢谢~我去试试看><
#4
不好意思是初学者XDDDDD
我去改改试试哈~谢谢~
#5
结贴~~~另外应该是echo file_get_contents不是echo file_get_content嗯- -