热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php下载远程图片,php获取远程文件

本文目录一览:1、php把图片下载本地保存到指定目录中

本文目录一览:


  • 1、php 把图片下载本地保存到指定目录中


  • 2、thinkphp用file_put_contents()保存远程图片到服务器


  • 3、PHP下载远程图片jpg 格式,


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

php 把图片下载本地保存到指定目录中

/*

 *@$url string 远程图片地址

 *@$dir string 目录,可选 ,默认当前目录(相对路径)

 *@$filename string 新文件名,可选

 */

function GrabImage($url, $dir='', $filename=''){

 if(empty($url)){

  return false;

 }

 $ext = strrchr($url, '.');

 if($ext != '.gif'  $ext != ".jpg"  $ext != ".bmp"){

  echo "格式不支持!";

  return false;

 }

 

  //为空就当前目录

  if(empty($dir))$dir = './';

//

 $dir = realpath($dir);

 //目录+文件

 $filename = $dir . (empty($filename) ? '/'.time().$ext : '/'.$filename);

 //开始捕捉 

 ob_start(); 

 readfile($url); 

 $img = ob_get_contents(); 

 ob_end_clean(); 

 $size = strlen($img); 

 $fp2 = fopen($filename , "a"); 

 fwrite($fp2, $img); 

 fclose($fp2); 

 return $filename; 

//测试 

GrabImage("此处网址/1.jpg", "as.gif");

// PS:目录存在,权限判断,自创建等自己应该知道!

//个人喜欢绝对路径所以就那么写了

thinkphp用file_put_contents()保存远程图片到服务器

你在逗我,怎么可能直接用程序直接写入另一个服务器。

我的思路是(没有试验过)

转换为图片为二进制文件进行上传到另一个服务器进行处理保存

转换图片为base64 用curl请求服务器进行处理

模拟表单请求

PHP下载远程图片jpg 格式,

?php

    header("Content-type: application/octet-stream"); 

    header("Accept-Ranges: bytes"); 

    header("Accept-Length:".filesize($path)); 

    header("Content-Disposition: attachment; filename=".basename($path));

    readfile($path);

?

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

?php

if($_POST['submit']){

$url=$_POST['url']; //取得提交过来的地址

$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="

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


推荐阅读
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • 本文讨论了如何在codeigniter中识别来自angularjs的请求,并提供了两种方法的代码示例。作者尝试了$this->input->is_ajax_request()和自定义函数is_ajax(),但都没有成功。最后,作者展示了一个ajax请求的示例代码。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
  • 本文介绍了RxJava在Android开发中的广泛应用以及其在事件总线(Event Bus)实现中的使用方法。RxJava是一种基于观察者模式的异步java库,可以提高开发效率、降低维护成本。通过RxJava,开发者可以实现事件的异步处理和链式操作。对于已经具备RxJava基础的开发者来说,本文将详细介绍如何利用RxJava实现事件总线,并提供了使用建议。 ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
  • 使用C++编写程序实现增加或删除桌面的右键列表项
    本文介绍了使用C++编写程序实现增加或删除桌面的右键列表项的方法。首先通过操作注册表来实现增加或删除右键列表项的目的,然后使用管理注册表的函数来编写程序。文章详细介绍了使用的五种函数:RegCreateKey、RegSetValueEx、RegOpenKeyEx、RegDeleteKey和RegCloseKey,并给出了增加一项的函数写法。通过本文的方法,可以方便地自定义桌面的右键列表项。 ... [详细]
author-avatar
詹荣臣
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有