if($_POST['submit']){
$url=$_POST['url']//取得提交过来的地址http://hu60.cn/wap/0wap/addown.php/fetion_sms.zip
$url=urldecode($url)
$fname=basename("$url")//返回路径中的文件名部分 fetion_sms.zip
$str_name=pathinfo($fname) //以数组的形式返回文件路径的信息
$extname=strtolower($str_name['extension'])//把扩展名转换成小写
//$uptypes=explode(",",$forum_upload)//取得可以上传的文件格式
//$size=getFileSize($url)
$time=date("Ymd",time())
$upload_dir="./upload/"//上传的路径
$file_name=$time.rand(1000,9999).'.'.$fname
$dir=$upload_dir.$file_name//创建上传目录
//判断目录是否存在 不存在则创建
if(!file_exists($upload_dir)){
mkdir($upload_dir,0777,true)
}
$contents=curl_download($url,$dir)
if($contents){
echo "下载成功"
}else{
echo "下载失败"
}
}
function curl_download($url, $dir) {
$ch = curl_init($url)
$fp = fopen($dir, "wb")
curl_setopt($ch, CURLOPT_FILE, $fp)
curl_setopt($ch, CURLOPT_HEADER, 0)
$res=curl_exec($ch)
curl_close($ch)
fclose($fp)
return $res
}
?>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>远程下载文件</title>
<form name="upform" method="post" action="" enctype='multipart/form-data'>
<input name='url' type='text' size='20'/>
<input type='submit' name='submit' value='远程下载'/>
</form>
</body>
</html>
curl下载的文件内容是可以直接输出到文件,而不是内存,请设置这个选项:
$fp = fopen('temp.jpg', 'w')curl_setopt($c, CURLOPT_RETURNTRANSFER, false)
curl_setopt($c, CURLOPT_FILE, $fp)
也可以通过设置memory_limit来提高最大内存使用量
ini_set('memory_limit', '1024M')您的采纳就是我的动力!
一个是看你是不是循环或者大量调用了curl;另外一个看你请求的网站回复的内容,使用print_r在屏幕打印输出一下,或者file_put_contents()写到硬盘上,查看一下内容。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)