php将远超文件下载到本地
来源:互联网 发布:spss手机版软件 编辑:程序博客网 时间:2024/05/28 23:20
注:这个demo适用的是yii框架,如果您使用的不是yii框架,这个方法也适用您,简单的了解一下思路
/** * 保存文件到本地 * @param 文件路径 $url * @param 保存本地路径 $savePath * @return string */ public static function downloadFile($url) { $www_root = Yii::getPathOfAlias('webroot'); $root_dir = 'uploads/audio'; $build_dir = date('Y') . '/' . date('m'); $origin_dir = $root_dir . '/' . $build_dir; $savePath = $www_root . DIRECTORY_SEPARATOR . $origin_dir . DIRECTORY_SEPARATOR;// 本地存放的路径(我是按照年月日来划分) $fileName = Common::getUrlFileExt($url); // 获取文件扩展名 if (!file_exists($savePath)) { Common::mkdirs($savePath); //目录不存在创建目录 } $fileName = time() . '.' . $fileName; //$file = file_get_contents($url); $ch = curl_init(); $timeout = 60; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $file_contents = curl_exec($ch); curl_close($ch); //使用curl $ch 为返回的文件流 if (!empty($file_contents)) { file_put_contents($savePath . '/' . $fileName, $file_contents); //保存到本地的地址 return '/' . $origin_dir . '/' . $fileName; //返回本地地址 } } /** * 获取文件扩展名 * @param 网页URL $url * @return string */ public static function getUrlFileExt($url) { $ary = parse_url($url); $file = basename($ary['path']); $ext = explode('.', $file); return $ext[1]; }
/** * 创建多级目录 */ public static function mkdirs($dir) { if (!is_dir($dir)) { if (!Common::mkdirs(dirname($dir))) { return false; } if (!mkdir($dir, 0777)) { return false; } } return true; }
downloadFile(http://www.baidu.com/mp3/123.wav); // 调用
0 0
- php将远超文件下载到本地
- php 下载保存文件保存到本地
- PHP 下载保存文件到本地
- PHP实现远程下载文件到本地
- 下载文件到本地
- PHP代码实现远程下载文件到本地
- PHP代码实现远程下载文件到本地的函数
- php 将多个文件压缩成zip并下载到本地
- java 下载文件到本地
- J2EE下载文件到本地
- 下载网页文件到本地
- java 下载文件到本地
- hdfs下载文件到本地
- servlet下载文件到本地
- H5 下载文件到本地
- lr下载文件到本地
- linux下载文件到本地
- jquery下载文件到本地
- 免费DDoS攻击测试工具大合集
- 类型转换
- JS中事件处理机制
- 使用ssh-keygen和ssh-copy-id三步实现SSH无密码登录 和ssh常用命令
- 浅谈电路中的各种“地”
- php将远超文件下载到本地
- Linux文件系统十问,你知道吗?
- JVM垃圾回收及调优总结
- Intent中的四个重要属性——Action、Data、Category、Extras
- APK 的安装与卸载
- linux 内核编译 (如何正确选择内核驱动)
- [LintCode]Segment Tree Build 构造线段树
- assign,retain,copy,weak,strong,readonly,nonatomic ,atomic 8个属性的特征
- javascript把数字格式化转换成货币型