php curl get 下载远程zip文件保存在本地例子
目前只知道用php下载图片,但是对于6M这样大小的zip文件就不知道怎么下载了,用相同的代码似乎会下载不全,新学PHP编程,请大家指教!...
目前只知道用php 下载图片,但是对于6M这样大小的zip文件就不知道怎么下载了,用相同的代码似乎会下载不全,新学PHP编程,请大家指教!
展开
3个回答
展开全部
<?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>
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>
更多追问追答
追问
运行之后没有显示下载成功或失败,应该是没运行成功吧,不知道哪里出了问题。
追答
你看有文件下载成功没。
展开全部
可以调用系统的下载命令:wget
exec()
exec()
更多追问追答
追问
我是Mac电脑Unix系统,没有wget命令,用curl应该也可以下,在命令行可以运行,但是不知道怎么写成PHP程序。。。
追答
$cmd = 'curl "http://url.com/xxx"';//这里完全是系统命令
exec($cmd, $output, $return);// $output参数是接受执行完系统命令的返回值。$return是执行状态
if($return == 0){
var_dump($output[0]);
}else{
// error
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
获得图片路径之后,直接根据路径写下载方法就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询