php curl get 下载远程zip文件保存在本地例子

php curl get 下载远程zip文件保存在本地例子,第1张

<?php

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()写到硬盘上,查看一下内容。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11998443.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存