文档章节

PHP 远端图片下载

喜欢敲代码的感觉
 喜欢敲代码的感觉
发布于 2014/09/28 12:25
字数 292
阅读 125
收藏 9
<?php
/**
 *php实现下载远程图片到本地
 *@param $url       string      远程文件地址
 *@param $filename  string      保存后的文件名(为空时则为随机生成的文件名,否则为原文件名)
 *@param $fileType  array       允许的文件类型
 *@param $dirName   string      文件保存的路径(路径其余部分根据时间系统自动生成)
 *@param $type      int         远程获取文件的方式
 *@return           json        返回文件名、文件的保存路径
 * 
 * 例子:{'fileName':13668030896.jpg, 'saveDir':/www/test/img/2013/04/24/}
 */
echo getImage('http://img.wan.renren.com/images/2013/0430/1367294093164.jpg', '', '/www/test/img/', array('jpg', 'gif'));
function getImage($url, $filename='', $dirName, $fileType, $type=0)
{
    if($url == ''){return false;}
    //获取文件原文件名
    $defaultFileName = basename($url);
    //获取文件类型
    $suffix = substr(strrchr($url,'.'), 1);
    if(!in_array($suffix, $fileType)){
        return false;
    }
    //设置保存后的文件名
    $filename = $filename == '' ? time().rand(0,9).'.'.$suffix : $defaultFileName;
          
    //获取远程文件资源
    if($type){
        $ch = curl_init();
        $timeout = 5;
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
        $file = curl_exec($ch);
        curl_close($ch);
    }else{
        ob_start();
        readfile($url);
        $file = ob_get_contents();
        ob_end_clean();
    }
    //设置文件保存路径
    $dirName = $dirName.'/'.date('Y', time()).'/'.date('m', time()).'/'.date('d',time()).'/';
    if(!file_exists($dirName)){
        mkdir($dirName, 0777, true);
    }
    //保存文件
    $res = fopen($dirName.$filename,'a');
    fwrite($res,$file);
    fclose($res);
    return "{'fileName':$filename, 'saveDir':$dirName}";
}

本文转载自:www.php230.com/download-picture-by-php.html

喜欢敲代码的感觉
粉丝 1
博文 41
码字总数 8149
作品 0
西安
程序员
私信 提问
pycharm windows 远程调试 ubuntu虚拟机python 项目

如果要了解详细的PyCharm远程调试的相关信息,请查阅PyCharm 官方文档 。 本文描述如何利用PyCharm的remote interpreter(官方文档中的第一种方法),对Tensorflow进行远程调试。 以下是PyC...

hyhlinux
2016/10/29
107
0
Android 端的 Web 服务器--AndServer

AndServer 是一个 Android 端的 Web 服务器,类似 Apache 或者 Tomcat,但又有不同,它是一个普通的 Android Library,Android 项目 Gradle 远程依赖或者添加 jar 包皆可引入该项目,然后就通...

匿名
2017/03/24
1K
1
PHP判断远程图片或文件是否存在

PHP判断远程图片或文件是否存在的实现代码。 最简单的方法就是用fopen(),看看文件能否打开,能打就文件当然就存在。 <?php $url = 'http://www.jbxue.com/images/test.jpg'; if( @fopen( $...

mysoftsky
2014/03/05
92
0
关于如何安装使用Git、tortoiseGit、Git@osc

关于Git代码托管的好处,这里就不再进行说明了。相信想去使用的人都应该有所了解啦。在使用开源中国里面的git@osc时,我们得先做入下几个工作准备。 第一:下载git for windowsj就是msysgit...

我只是一只小小鸟
2015/11/23
912
1
企业级Docker Registry开源工具Harbor的用户使用指南

用户手册 概述 该指导将引导你去使用Harbor的各个功能特性。你将学习到怎样使用Harbor去完成以下任务: 管理你的项目 管理一个项目中的成员 同步一个项目中的registry到远端的registry 检索项...

Andy-xu
2016/11/15
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

新建时隐藏按钮,显示明细时显示

在InitControl()中 if (saTableKeys != null) { rpgDesign.Visible = true; rpgPrint.Visible = true; }......

_Somuns
33分钟前
5
0
【实战演练,拒绝996】-SpringBoot2.x自定义Spring boot Starter

欢迎关注 提升能力,涨薪可待 面试知识,工作可待 实战演练,拒绝996 如果此文对你有帮助、喜欢的话,那就点个赞呗! 前言 是不是感觉在工作上难于晋升了呢? 是不是感觉找工作面试是那么难呢...

ccww_
35分钟前
8
0
SpringBoot从入门到放弃,原理篇-自动配置原理

SpringBoot从入门到放弃,原理篇-自动配置原理 springboot自动配置原理 配置文件能配置的属性参照 自动配置原理 1、springboot启动的时候加载主配置类,开启了自动配置功能@EnableAutoConfig...

有一个小阿飞
今天
11
0
php变量和数据类型

php中的变量 PHP中的变量声明 PHP中的变量的使用 PHP中的数据类型之整型 PHP数据类型之浮点类型和布尔类型 PHP数据类型之字符串类型 PHP数据类型之heredoc和nowdoc的使用 PHP数据类型之复合类...

达达前端小酒馆
今天
7
0
OSChina 周日乱弹 —— 沙发忽然就爆炸了,吓死我了

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】@这次装个文艺青年吧:#今日歌曲推荐# 分享Vicetone/Youngblood Hawke的单曲《Landslide》: 《Landslide》- Vicetone/Youngblood Hawke 手机党...

小小编辑
今天
253
9

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部