文件管理 · 2024年5月7日

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

『壹』 如果服务器端的ftp或http服务的端口号不是默认的21或80,如何使用curl命令下载文件

httpftp协议在使用默认端口的情况下,浏览器和ftp软件在没有设置情况下会自动尝试连接该服务的默认端口。如在服务器上修改了其服务的默认端口,你在尝试使用该服务的客户机上必须指定特定的端口号,匹配你服务器所设定的。

例如linux下使用apache创建了虚拟站点(服务器),并使用了88端口你在访问这个虚拟站点就必须指定端口号,如

"http://virtual.website.com:88/path"

#:80在网址后添加分号并指定端口号。其后可以指定网站的路径和页面,一般不指定。

linux环境下常用apache架设web服务器(至少我的是=ω=),修改httpd.conf中的默认监听端口Listen80#

如若是虚拟站点需修改

NameVirtualHost*:80

<VirtualHost*:80>

两项

至于ftp,由于不清楚你使用的是哪款软件驱动服务的,所以不做解释(无需必要,参考软件设置文档或告知软件名并提问)

PSvsftpd修改vsftpd.conf中的listen_port=21

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

<?phpif($_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>

『叁』 thinkphp的http::download怎么做下载文件

一、使用curlDownload 采集远程文件

/** * 采集远程文件 * @access public * @param string $remote 远程文件名 * @param string $local 本地保存文件名 * @return mixed */static public function curlDownload($remote,$local) {$cp = curl_init($remote);$fp = fopen($local,"w"); curl_setopt($cp, CURLOPT_FILE, $fp); curl_setopt($cp, CURLOPT_HEADER, 0); curl_exec($cp); curl_close($cp); fclose($fp);}

调用:

$Http = new OrgNetHttp();$Http::curlDownload("m/.jpg", "./Public/file/1.jpg");

二、使用download 下载文件

/** * 下载文件 * 可以指定下载显示的文件名,并自动发送相应的Header信息 * 如果指定了content参数,则下载该参数的内容 * @static * @access public * @param string $filename 下载文件名 * @param string $showname 下载显示的文件名 * @param string $content 下载的内容 * @param integer $expire 下载内容浏览器缓存时间 * @return void */ static public function download ($filename, $showname='',$content='',$expire=180) { if(is_file($filename)) {$length = filesize($filename);}elseif(is_file(UPLOAD_PATH.$filename)) { $filename = UPLOAD_PATH.$filename;$length = filesize($filename);}elseif($content != '') {$length = strlen($content);}else { E($filename.L('下载文件不存在!'));} if(empty($showname)) { $showname = $filename;} $showname = basename($showname);if(!empty($filename)) {$finfo = new finfo(FILEINFO_MIME);$type = $finfo->file($filename); }else{$type = "application/octet-stream";} //发送Http Header信息 开始下载 header("Pragma: public"); header("Cache-control: max-age=".$expire); //header('Cache-Control: no-store, no-cache, must-revalidate'); header("Expires: " . gmdate("D, d M Y H:i:s",time()+$expire) . "GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s",time()) . "GMT"); header("Content-Disposition: attachment; filename=".$showname); header("Content-Length: ".$length); header("Content-type: ".$type); header('Content-Encoding: none'); header("Content-Transfer-Encoding: binary" ); if($content == '' ) { readfile($filename);}else { echo($content);} exit();}

调用前,首先要确定有没有开启php_fileinfo扩展,没有的话,则会报错。。

wampserver开启方式:

选择php_fileinfo就行了

调用:

$Http = new OrgNetHttp();$filename="Public/file/test.doc";$showname="test.doc";$content = "this"; // 表示下载的文件内容只有this$Http::download($filename, $showname, $content);

谢谢关注~

『肆』 Linux运维命令Curl – 日常用法总结

在Linux系统中,curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载操作,是综合传输工具,习惯上称url为下载工具。下面就日常运维中基于curl命令使用做下总结

一、Curl命令用法

1. curl语法和参数选项 # curl [option] [url]

curl常见参数

2. curl使用说明 curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在”标准输出”(stdout)上面。它支持多种协议,下面说下curl命令的日常使用示例:

3. curl上传文件的用法(POST请求方式) 一般来说,我们都会用curl下载网页,但是curl上传文件则不常用。下面说下curl模拟”multipart/form-data”形式的form上传文件, 命令稍稍复杂些。

4. curl常用示例

5. curl命令的超时时间

二、Curl的GET、POST、PUT、DELETE请求

1. GET、POST、PUT、DELETE含义与区别

2. GET、POST、PUT、DELETE四种请求方式的curl访问