直接上代码:

  1. getFile("http://easyread.ph.126.net/N8gDl6ayo5wLgKbgT21NZQ==/7917056565549478184.jpg");
  2. /**
  3. * php实现下载远程图片保存到本地
  4. **
  5. * $url 图片所在地址
  6. * $path 保存图片的路径
  7. * $filename 图片自定义命名
  8. * $type 使用什么方式下载
  9. * 0:curl方式,1:readfile方式,2file_get_contents方式
  10. *
  11. * return 文件名
  12. */
  13. function getFile($url,$path='',$filename='',$type=0){
  14. if($url==''){return false;}
  15. //获取远程文件数据
  16. if($type===0){
  17. $ch=curl_init();
  18. $timeout=5;
  19. curl_setopt($ch,CURLOPT_URL,$url);
  20. curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
  21. curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);//最长执行时间
  22. curl_setopt($ch,CURLOPT_TIMEOUT,$timeout);//最长等待时间
  23.  
  24. $img=curl_exec($ch);
  25. curl_close($ch);
  26. }
  27. if($type===1){
  28. ob_start();
  29. readfile($url);
  30. $img=ob_get_contents();
  31. ob_end_clean();
  32. }
  33. if($type===2){
  34. $img=file_get_contents($url);
  35. }
  36. //判断下载的数据 是否为空 下载超时问题
  37. if(empty($img)){
  38. throw new \Exception("下载错误,无法获取下载文件!");
  39. }
  40.  
  41. //没有指定路径则默认当前路径
  42. if($path===''){
  43. $path="./";
  44. }
  45. //如果命名为空
  46. if($filename===""){
  47. $filename=md5($img);
  48. }
  49. //获取后缀名
  50. $ext=substr($url, strrpos($url, '.'));
  51. if($ext && strlen($ext)<5){
  52. $filename.=$ext;
  53. }
  54.  
  55. //防止"/"没有添加
  56. $path=rtrim($path,"/")."/";
  57. //var_dump($path.$filename);die();
  58. $fp2=@fopen($path.$filename,'a');
  59.  
  60. fwrite($fp2,$img);
  61. fclose($fp2);
  62. //echo "finish";
  63. return $filename;
  64. }

php下载远程文件方法~的更多相关文章

  1. 关于下载远程文件为未知文件.txt的解决方法

    本地下载文件后缀正常,服务器下载文件后缀都为.txt的解决方法: 后缀为 未知文件.txt 的原因为前端无权限获取Content-Disposition中的文件名 response.setHeader ...

  2. 使用CertUtil.exe下载远程文件

    使用CertUtil.exe下载远程文件 证书 https://www.cnblogs.com/17bdw/p/8728656.html 1.前言 经过国外文章信息,CertUtil.exe下载恶意软 ...

  3. WPF下载远程文件,并显示进度条和百分比

    WPF下载远程文件,并显示进度条和百分比 1.xaml <ProgressBar HorizontalAlignment="Left" Height="10&quo ...

  4. 下载Xml文件方法

    #region 下载Xml文件方法 //定义委托 private delegate void DownLoadDelegate(string url, string filename); privat ...

  5. java下载远程文件到本地

    java下载远程文件到本地(转载:http://www.cnblogs.com/qqzy168/archive/2013/02/28/2936698.html)   /**       * 下载远程文 ...

  6. PHP下载远程文件到指定目录

    PHP用curl可以轻松实现下载远程文件到指定目录: <?php class Download { public static function get($url, $file) { retur ...

  7. (转)GitHub上想下载单个文件方法

    找到该文件,单机raw,如下图: 然后会在网页打开该文件,复制URL,下载即可(如果是不可预览文件,会自动下载). 转自: GitHub上想下载单个文件方法 - Smallcaff的博客 - CSDN ...

  8. PHP下载远程文件的3种方法以及性能考虑

    今天在做导出Excel的时候,总是要测试导出的Excel文件,频繁的下载和打开,很麻烦 就想着写段代码一气呵成  服务端导出Excel==>下载Excel文件到本地==>并打开的操作. 这 ...

  9. 再见Xshell、Xftp!Python执行Linux命令、上传下载远程文件

    相信大家应该都接触过Linux操作系统(Ubuntu.Centos等),那么在使用的Linux操作系统需要使用一些远程ssh工具,尤其是公网服务器. 常用的ssh工具主要有:Xshell.MobaXt ...

随机推荐

  1. git --help出来的命令 + eclipse里用git小记

    用法:git [--version] [--help] [-C <path>] [-c name=value]           [--exec-path[=<path>]] ...

  2. [LeetCode] Bulb Switcher 灯泡开关

    There are n bulbs that are initially off. You first turn on all the bulbs. Then, you turn off every ...

  3. [LeetCode] Meeting Rooms II 会议室之二

    Given an array of meeting time intervals consisting of start and end times [[s1,e1],[s2,e2],...] (si ...

  4. [LeetCode] Search for a Range 搜索一个范围

    Given a sorted array of integers, find the starting and ending position of a given target value. You ...

  5. jquery点滴

    1.toggle 2.next prev after before 3.on 4.当我们使用jquery的attr('checked',true)或者attr('checked','checked') ...

  6. Unity 最佳实践

    转帖:http://www.glenstevens.ca/unity3d-best-practices/ 另外可以参考:http://devmag.org.za/2012/07/12/50-tips- ...

  7. C 语言学习 第六次作业总结

    本次作业,同学们开始学习函数.通过之前和同学们的沟通,似乎同学们在这里遇到的问题比较多.下面,我先帮同学们整理下函数的相关知识点. 什么是函数 首先,需要明确的是,什么是函数.所谓函数,也就是一段有名 ...

  8. 源码之Queue

    看源码可以把python看得更透,更懂,想必也是开发人员的必经之路. 现在有个任务,写个线程池.使用Queue就能写一个最简单的,下面就来学学Queue源码. 源码之Queue: class Queu ...

  9. Java的多线程机制系列:不得不提的volatile及指令重排序(happen-before)

    一.不得不提的volatile volatile是个很老的关键字,几乎伴随着JDK的诞生而诞生,我们都知道这个关键字,但又不太清楚什么时候会使用它:我们在JDK及开源框架中随处可见这个关键字,但并发专 ...

  10. console 输出信息美化

    不久前在一些前端的网站上看到的效果,以前觉得console只是拿来做做调试,不过现在看到别人网站的console美化效果,这个还可以作为一种网站个性来显示的.. 以%c开头,后面的文字就打印的信息,后 ...