文档章节

下载远程图片到本地

 沧海野狼
发布于 2016/12/07 16:05
字数 271
阅读 5
收藏 0
点赞 0
评论 0

/**
 * 下载远程图片到本地
 *
 * @param string $url 远程文件地址
 * @param string $filename 保存后的文件名(为空时则为随机生成的文件名,否则为原文件名)
 * @param array $fileType 允许的文件类型
 * @param string $dirName 文件保存的路径(路径其余部分根据时间系统自动生成)
 * @param int $type 远程获取文件的方式
 * @return json 返回文件名、文件的保存路径
 * @author blog.snsgou.com
 */
function download_image($url, $fileName = '', $dirName, $fileType = array('jpg', 'gif', 'png'), $type = 1) {
    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 = 30;
        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());
    $dirName = $dirName . '/' . date('Ym', time());
    if (!file_exists($dirName))
    {
        mkdir($dirName, 0777, true);
    }

    // 保存文件
    $res = fopen($dirName . '/' . $fileName, 'a');
    fwrite($res, $file);
    fclose($res);

    return array(
        'fileName' => $fileName,
        'saveDir' => $dirName
    );
}

本文转载自:http://php.lqbcms.cn/242786

共有 人打赏支持
粉丝 1
博文 17
码字总数 1323
作品 0
东城
程序员
pycharm windows 远程调试 ubuntu虚拟机python 项目

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

hyhlinux
2016/10/29
37
0
Android 之 远程图片获取和本地缓存

概述 对于客户端——服务器端应用,从远程获取图片算是经常要用的一个功能,而图片资源往往会消耗比较大的流量,对应用来说,如果处理不好这个问题,那会让用户很崩溃,不知不觉手机流量就用...

jdroid
2012/04/02
0
0
综合技术--gitHub(4)--本地仓库与远程仓库

本篇主要讲解 1.本地仓库提交到远程仓库 2.从远程仓库下载到本地仓库 场景:前面的部分,已经完成了本地仓库的所有工作,这适合局域网内开发,不适合远程(外网)协同工作。因此,需要在外网(...

求是科技
2016/11/03
9
0
Python爬虫关于urlretrieve()函数的使用笔记

urllib 模块提供的 urlretrieve() 函数。urlretrieve() 方法直接将远程数据下载到本地。 参数 finename 指定了保存本地路径(如果参数未指定,urllib会生成一个临时文件保存数据。) 参数 re...

楠木楠
2016/09/19
1K
0
python urllib模块

在python中urllib模块提供上层接口,可以使用它下载读取数据,这里举个例子,把sina首页的html抓取下来显示出来.有2种方法可以实现. 1.urlopen(url, data=None, proxies=None) urlopen(url [, ...

乐晨
2013/04/11
0
0
如何在github用git Pages上传自己在本地做的项目?

如何在Github Pages搭建自己写的页面? 网上教程一大堆,却没有几个能看懂的,问题一:90%的都在讲解如何搭建博客,和我想要将自己的网页部署到上面还是有点区别的。问题二:所有的教程都用到...

hyz000
2016/11/20
22
0
Eclipse Git使用

前言 在之前写过的一些基本命令,但是,实际开发工作中,一般不直接使用命令行,而是使用集成开发工具,工具可以极大提高效率,而不用去记忆繁多的命令。团队中无法使用的主要原因我觉得也在...

kenzheng
2016/07/09
118
0
学习日志:osc git的简单使用

前提:0.1 已经安装好git的客户端0.2 已经创建好一个创库,以issac为例子若是第一次使用: 绑定用户名和你的email,都是osc上用的,不是别的 添加SSH公钥 1.1 添加公钥的目的是:取得访问远程...

issac宝华
2016/05/06
43
0
AjaXplorer 3.0.2 发布,Bug修复版本

AjaXplorer是一款通过本地实现远程端文件管理功能的软件。该软件提供了一个友好的可视化GUI界面方便用户的使用。 主要特性: 1. 可以对远程端文件进行全功能的操作,如上传、下载、删除、更名...

绿悠悠
2010/10/07
471
3
Python爬虫--抓取百度贴吧图片

在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材。   我们最常规的做法就是通过鼠标右键,选择另...

周东尧
2016/08/20
121
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

java 复制对象有哪些方式

java 复制对象有哪些方式 Apache的 Common beanutils库 org.apache.commons.beanutils.BeanUtils.copyProperties(dest,origin); Springframework 的BeanUtil 依赖: <dependency> ......

黄威
16分钟前
0
0
1.13 单用户模式

命令 init 6 #重启,reboot或shutdown -r now init 0 #重启,poweroff 单用户模式:密码忘记情况下 主机重启,按方向键↑,选择CentOS Linux (3.10.0-514.e17.X86 64) 7 (Core),按e键编辑...

小丑鱼00
18分钟前
1
0
jstack的简单使用

公司测试反应, 一个java应用的机器,cpu始终是30%, 即使不做交易, 于是想到了之前看到的jstack文章, 实践步骤记录一下: 1, 找出java应用的进程号 ps -ef|grep 应用名|grep -v grep 2, 找出pid...

零二一七
23分钟前
0
0
崛起于Springboot2.X之项目war打包部署(18)

将springboot项目打包步骤: 1、启动类 extends SpringBootServletInitializer 2、启动类添加覆盖方法 @Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder......

木九天
32分钟前
1
0
导入CSV文件就行数据整理分析

#-*-coding:utf-8-*-import csv,os,re,mathlocalPath=input("请输入所有群文件的根目录:") #所有QQ群文件的物理根目录路径def info(): info_dic=[] dirList=os.listdi...

Kefy
38分钟前
0
0
CoreText进阶(六)-内容大小计算和自动布局

CoreText进阶(六)-内容大小计算和自动布局 其它文章: CoreText 入门(一)-文本绘制 CoreText入门(二)-绘制图片 CoreText进阶(三)-事件处理 CoreText进阶(四)-文字行数限制和显示更...

aron1992
40分钟前
0
0
一个Unity高人的博客,涉猎范围很广,深度也很深。

https://blog.csdn.net/ecidevilin/article/list/

爽歪歪ES
42分钟前
0
0
Spring Cloud Config-Git后端

EnvironmentRepository的默认实现使用Git后端,这对于管理升级和物理环境以及审核更改非常方便。要更改存储库的位置,可以在Config Server中设置“spring.cloud.config.server.git.uri”配置...

itcloud
43分钟前
1
0
centos7 卸载mysql

[root@zyf ~]# rpm -qa|grep -i mysqlmysql-community-libs-5.6.34-2.el7.x86_64mysql-community-server-5.6.34-2.el7.x86_64mysql-community-release-el7-5.noarchmysql-community-......

Yao--靠自己
52分钟前
0
0
【Spring 系列 条件注解】

Spring 提供了按条件注册Bean的功能涉及到两个组件分别是:核心接口Condition,核心注解Conditional。 1、示例说明 为了演示条件注解的效果,需要定义一个属性文件,然后根据属性文件中配置的...

HansonReal
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部