1. /*
  2. * 批量传输产品主图到阿里云
  3. */
  4. public function transferImage(){
  5.  
  6. $num = 50;
  7. $p = isset($this->request->get['p'])?$this->request->get['p']:0;
  8. $nonum = isset($this->request->get['nonum'])?$this->request->get['nonum']:0;
  9. $start = ($nonum>0)?$nonum:$p*$num;
  10.  
  11. $query = $this->db->query("SELECT product_id,image,site_id FROM " . DB_PREFIX . "product WHERE is_delete = 0 AND site_id='2170254929593344' AND image LIKE '%.alicdn.com%' LIMIT ".$start.",".$num);
  12. $result = $query->rows;
  13.  
  14. //图片处理
  15. if(!empty($result)){
  16.  
  17. $aliYunOSS = new AliYunOSS();
  18.  
  19. foreach ($result as $key => $value){
  20.  
  21. $file = $value['image'];
  22.  
  23. //保存图片到服务器上
  24. $data = @file_get_contents($file);
  25. if(!empty($data)){
  26. $ext = pathinfo($file, PATHINFO_EXTENSION);
  27. $filename = $value['product_id'].rand(). '.' . $ext;
  28. $rootFile = DIR_UPLOAD .'file/'. $filename;
  29. file_put_contents($rootFile, $data);
  30.  
  31. //上传图片到阿里云
  32. $fileDir = date('Y', time()) . '/' . date('m', time());
  33. $ali = $aliYunOSS->uploadFile($rootFile, $value['site_id'].'/'.$fileDir.'/'.$filename);
  34.  
  35. if($ali['success']==1 && !empty($ali['info']['url'])){
  36. $image = $ali['info']['url'];
  37.  
  38. if (ENVIRONMENT == 'pro') {
  39. $image = str_replace('http://joinf-website-release.oss-cn-hongkong.aliyuncs.com', OSS_URL, $image);
  40. $image = str_replace('https://joinf-website-release.oss-cn-hongkong.aliyuncs.com', OSS_URL, $image);
  41. }
  42.  
  43. $sql = "UPDATE " . DB_PREFIX . "product SET image='".$image."' WHERE product_id='".$value['product_id']."' AND image='".$value['image']."'";
  44. $this->db->query($sql);
  45.  
  46. //删除服务器文件
  47. unlink($rootFile);
  48. }
  49. }else{
  50. $nonum++;
  51. }
  52. }
  53.  
  54. $url = $this->url->createUrl('test/transferImage','p='.($p+1).'&nonum='.$nonum.'&rand='.rand(1000, 9999));
  55. echo "<script>window.location.href='".$url."'</script>";
  56.  
  57. }else{
  58. echo '处理完成';
  59. }
  60.  
  61. }

PHP批量保存图片到服务器再上传阿里云的更多相关文章

  1. 微信小程序中图片上传阿里云Oss

    本人今年6月份毕业,最近刚在上海一家小公司实习,做微信小程序开发.最近工作遇到一个小问题. 微信小程序图片上传阿里云服务器Oss也折腾了蛮久才解决的,所以特意去记录一下. 第一步:配置阿里云地址: 我 ...

  2. 百度editor调用【图片上传阿里云】

    百度editor调用简单,但是图片和文件上传阿里云就有点难度了.下面我详细说一下. 百度富文本编辑器下载地址:http://ueditor.baidu.com/website/download.htm ...

  3. base64格式的图片上传阿里云

    base64格式的图片上传阿里云 上传图片的时候,除了普通的图片上传,还有一张图片信息是以base64格式发送到后台的. 后台接受base64格式的图片,上传至阿里云代码:(主要是将base64转化成 ...

  4. 关于数据上传阿里云MaxCompute调研

    1.背景 当前的数据存储基于mysql库表存储形式,目前已经无法满足愈加增大的数据存储需求,新项目基于Maxcompute数据仓库架构,需要将统计日志上传Maxcompute,本文对Maxcomput ...

  5. Linux使用scp远程传输命令进行服务器文件互传(阿里云服务器)

    阿里云同一个区的的两个云服务器,通过内网进行文件传输,速度快不说(正常传输文件的速度能达到35m~50m/s),还不占用公网带宽. 阿里云云服务器有一个安全组策略,可能需要设置下 内网入.出方向的IP ...

  6. docker自定义镜像上传阿里云

    1.alpine制作jdk镜像 2.Alpine制作jre镜像(瘦身) 3.Docker镜像上传至阿里云 alpine制作jdk镜像 alpine Linux简介 1.Alpine Linux是一个轻 ...

  7. Docker之Alpine制作jre镜像(瘦身)+自定义镜像上传阿里云

    alpine制作jdk镜像 alpine Linux简介 1.Alpine Linux是一个轻型Linux发行版,它不同于通常的Linux发行版,Alpine采用了musl libc 和 BusyBo ...

  8. alpine制作jdk、jre镜像、自定义镜像上传阿里云

    alpine制作jdk镜像 alpine Linux简介 1.Alpine Linux是一个轻型Linux发行版,它不同于通常的Linux发行版,Alpine采用了musl libc 和 BusyBo ...

  9. 文件上传-阿里云OSS-存储文件

    JS上传文件到阿里云OSS OSS支持流式写入和读出.特别适合视频等大文件的边写边读业务场景. 注意在OSS的控制台:跨域管理中设置允许的方法 <script> var client = ...

随机推荐

  1. ml交叉验证

    https://blog.csdn.net/guanyuqiu/article/details/86006474 https://blog.csdn.net/weixin_42660173/artic ...

  2. js创建对象的三种方法

    1.使用对象初始化器:{} var person = {....} 2 var person=new object() function person(参数) { this.参数=... } var ...

  3. 若依项目利用nginx实现负载均衡及保持会话

    记录一下若依项目利用nginx实现负载均衡及保持会话的步骤. 此次作为试验性的测试,为了方便在本地window的环境上实现. 具体步骤: 1.安装两个tomcat8,可以下载一个后,另一个复制即可,下 ...

  4. PAT 1065 A+B and C (64bit)

    1065 A+B and C (64bit) (20 分)   Given three integers A, B and C in [−], you are supposed to tell whe ...

  5. mysql中关于关联索引的问题——对a,b,c三个字段建立联合索引,那么查询时使用其中的2个作为查询条件,是否还会走索引?

    情况描述:在MySQL的user表中,对a,b,c三个字段建立联合索引,那么查询时使用其中的2个作为查询条件,是否还会走索引? 根据查询字段的位置不同来决定,如查询a,     a,b    a,b, ...

  6. mySQL explain解释

    1).id列 数字越大越先执行,如果说数字一样大,那么就从上往下依次执行,id列为null的就表是这是一个结果集,不需要使用它来进行查询.   2).select_type列常见的有: A:simpl ...

  7. SharePoint REST API - 使用REST API和jQuery上传一个文件

    博客地址:http://blog.csdn.net/FoxDave 本篇主要通过两个代码示例来展示如何应用REST API和jQuery上传文件到SharePoint. 示例会使用REST接口和j ...

  8. HTML5:图片、音乐和视频

    图片.音乐和视频 一.图片 1.属性 属性 说明 alt 规定图像的替代文本. src 规定显示图像的 URL align 规定如何根据周围的文本来排列图像. border 定义图像周围的边框. he ...

  9. angularJs绑定select的正确姿势

    最近在项目中使用ionic,需要在页面上绑定一个年份下拉框,默认选中当前年,并且在下拉框的change事件中增加一些业务逻辑. 不管是使用ng-repeat还是ng-options,都是各种坑:默认选 ...

  10. [转] Ubuntu16.04完美安装Sublime text3

    转载自:https://www.cnblogs.com/hupeng1234/p/6957623.html 1.安装方法 1)使用ppa安装 sudo add-apt-repository ppa:w ...