使用ThinkPHP自带的Http类下载远程图片到本地

  Thinkphp是国人开发一个PHP框架,该框架相比国外的一些框架也毫不逊色。强大的ORM,插件,分组等功能让人爱不释手。

     Http类在目录ThinkPHP/Lib/ORG/Net下面。接下来看看是如何调用的。

 1 <?php
2 import("Com.Buyback.QueryAmazon");
3 import("ORG.Net.Http");
4
5 class Image {
6 public static function getImage($isbn) {
7 $bookInformModel = D("bookinform");
8 $result = $bookInformModel->where("isbn='$isbn'")->select();
9 if($result[0]['image'] == ""){
10 $data['inform_id'] = $result[0]['inform_id'];
11 $remoteUrl = QueryAmazon::getImage($isbn);
12 if(!empty($remoteUrl['ImageURL'])){
13 $localUrl = "Public/bookcover/".$isbn.".jpg";
14 Http::curl_download($remoteUrl['ImageURL'], "./".$localUrl);
15 }else{
16 $localUrl = "Public/bookcover/unknownbook.png";
17 }
18 $data['image'] = $localUrl;
19 $bookInformModel->save($data);
20 return $localUrl;
21 }
22 return $result[0]['image'];
23 }
24 }
25
26 ?>

这里我先判断数据库中有无该图片信息,没有就调用amazon的webservice从远程获取到图片地址,再使用

Http::curl_download($remoteUrl['ImageURL'], "./".$localUrl);

其中curl_download方法第一个参数是远程图片地址,第二个参数是保存到本地的地址。

OK,就这么简单~~

原文地址:https://www.cnblogs.com/hongchenok/p/2112471.html