<?php/*** Created by JetBrains PhpStorm.* User: taoqili* Date: 11-12-28* Time: 上午9:54* To change this template use File | Settings | File Templates.*/header("Content-Type: text/html; charset=utf-8");error_reporting(E_ERROR|E_WARNING);//远程抓取图片配置$config = array("savePath" => "../../../bdimages/upload1/" ,            //保存路径"allowFiles" => array( ".gif" , ".png" , ".jpg" , ".jpeg" , ".bmp" ) , //文件允许格式"maxSize" => 3000                    //文件大小限制,单位KB
    );$uri = htmlspecialchars( $_POST[ 'upfile' ] );$uri = str_replace( "&amp;" , "&" , $uri );getRemoteImage( $uri,$config );/*** 远程抓取* @param $uri* @param $config*/function getRemoteImage( $uri,$config){$tempimgUrl= '';//忽略抓取时间限制set_time_limit( 0 ); //ue_separate_ue  ue用于传递数据分割符号$imgUrls = explode( "ue_separate_ue" , $uri );$tmpNames = array();foreach ( $imgUrls as $imgUrl ) {  //http开头验证if(strpos($imgUrl,"http")!==0){array_push( $tmpNames , "error" );continue;}//获取请求头$heads = get_headers( $imgUrl );//死链检测if ( !( stristr( $heads[ 0 ] , "200" ) && stristr( $heads[ 0 ] , "OK" ) ) ) {array_push( $tmpNames , "error" );continue;}//格式验证(扩展名验证和Content-Type验证)$ext = strtolower( strrchr( $imgUrl , '.' ) );//当文件后缀不能存,并且是图片类型的,自动添加文件后缀$imgAttr = get_headers( $imgUrl, true );$imgtype = array('image/png', 'image/jpeg', 'image/gif');if( !in_array( $ext, $config[ 'allowFiles' ] ) && in_array($imgAttr['Content-Type'],  $imgtype)){ switch( $imgAttr['Content-Type'] ){case 'image/png' :$ext = '.png';break;case 'image/jpeg' :$ext = '.jpg';break;case 'image/gif' :$ext = '.gif';break;default:$ext = '.jpg';}//读取远程无后缀的图片内容$tempimgUrl = @file_get_contents( $imgUrl);$imgUrl = $imgUrl.$ext;}$fileType = $ext;if ( !in_array( $fileType , $config[ 'allowFiles' ] ) || stristr( $heads[ 'Content-Type' ] , "image" ) ) {array_push( $tmpNames , "error" );continue;}  //打开输出缓冲区并获取远程图片ob_start();$context = stream_context_create(array ('http' => array ('follow_location' => false // don't follow redirects
                    )));//请确保php.ini中的fopen wrappers已经激活readfile( $imgUrl,false,$context);//当无后缀图片时,用读出来的数据$img = !empty($tempimgUrl) ? $tempimgUrl : ob_get_contents();ob_end_clean();//大小验证$uriSize = strlen( $img ); //得到图片大小$allowSize = 1024 * $config[ 'maxSize' ];if ( $uriSize > $allowSize ) {array_push( $tmpNames , "error" );continue;}//创建保存位置$savePath = $config[ 'savePath' ].date('Ymd', time()).'/';if ( !file_exists( $savePath ) ) {mkdir( "$savePath" , 0777 );}//写入文件$tmpName = $savePath . rand( 1 , 10000 ) . time() . strrchr( $imgUrl , '.' );try {$fp2 = @fopen( $tmpName , "a" );fwrite( $fp2 , $img );fclose( $fp2 );  //添加水印,载入水印需要的文件 @author Abner @time 20171221 startdefine('IN_ECS', true);define('INIT_NO_USERS', true);require_once( '../../init.php');require_once( '../../cls_image.php');$image = new cls_image(); if (intval($_CFG['watermark_place']) > 0 && !empty($_CFG['watermark'])){ $image->add_watermark( $tmpName , '', '../../'.$_CFG['watermark'], $_CFG['watermark_place'], $_CFG['watermark_alpha']);}//添加水印,载入水印需要的文件 @author Abner @time 20171221 endarray_push( $tmpNames ,  $tmpName );} catch ( Exception $e ) {array_push( $tmpNames , "error" );}}/*** 返回数据格式* {*   'url'   : '新地址一ue_separate_ue新地址二ue_separate_ue新地址三',*   'srcUrl': '原始地址一ue_separate_ue原始地址二ue_separate_ue原始地址三',*   'tip'   : '状态提示'* }*/echo "{'url':'" . implode( "ue_separate_ue" , $tmpNames ) . "','tip':'远程图片抓取成功!','srcUrl':'" . $uri . "'}";}

转载于:https://www.cnblogs.com/Abner3721/p/8118686.html

ecshop百度编辑器远程下载无后缀的图片,并且加水印相关推荐

  1. 网易自媒体视频,批量修改md5采集下载上传,批量自动去水印加水印软件 今日头条自媒体视频,youtubu...

    网易自媒体视频,批量修改md5采集下载上传,批量自动去水印加水印软件 今日头条自媒体视频,youtubu 视频去重,批量自动去水印加水印软件 快视频,视频消重技术去水印去logo字幕工具 搜狐自媒体视 ...

  2. php百度编辑器精简版,开源web编辑器|百度编辑器ueditor下载1.4.3.4php版 下载_久友软件下载...

    百度编辑器ueditor是由百度官方推出的开源web编辑器.百度编辑器ueditor能支持用户在网页上进行内容编辑,软件体积十分的轻巧,完全免费开源,加载速度极快,兼容所有主流的浏览器使用,如:Moz ...

  3. ueditor抓取远程图片php版,Ueditor百度编辑器远程抓取图片的开启与关闭

    前言 这几天一直被百度编辑器自动抓取远程图片的功能困扰.因为这个功能吧,总是时灵时不灵的.有时候会抓取远程图片,有时候又不会抓取远程图片.相信各位都有遇到过.本人对编辑器没有太多的了解,下面如果有讲错 ...

  4. 百度编辑器导入word插件,支持带图片文档导入

    Laravel.thinkPHP框架需要先安装PHPword,需要用PHPword扩展将word转化成html.该插件主要由两部分组成:编辑器上传word插件和文档转换功能代码,最重要的是文档转换代码 ...

  5. 百度编辑器上传图片自定义路径,访问路径动态加载

    在用百度编辑器时发现他以前的上传图片只能上传到项目的根目录下 这叫人很郁闷,在网上找了一些资料,现在记录一下. 1.首先在config.json中添加root路径,这里我起名叫uploadRoot字段 ...

  6. 火车头dede采集接口,图片加水印,远程图片本地化,远程无后缀的无图片本地化...

    <?php /*[LocoySpider] (C)2005-2010 Lewell Inc.火车采集器 DedeCMS 5.7 UTF8 文章发布接口 Update content: 图片加水印 ...

  7. 百度编辑器的初步使用

    商品发布中 需要使用到编辑器 在这里记录一下 问题和使用方法 附上百度编辑器的下载和说明文档的链接地址 戳这里 我下载了源码,所有版本都包括 在这里 主要跟着 examples来  里面有一个完整de ...

  8. 帝国cms 7.5 utf8集成百度编辑器完美集成版

    手机模板网 http://www.sjmoban.com/sucai/14.html?tguserid=119 重要说明 本插件需要以下核心库支持: http://www.sjmoban.com/su ...

  9. 帝国cms html5 编辑器,帝国cms 7.5 utf8集成百度编辑器完美集成版

    手机模板网 重要说明 本插件需要以下核心库支持: 安装方法 第一步.将lskue.zip解压到/e/extend/lskue目录下. 第二步.然后添加或修改一个字段,如下值即可: =ehtmlspec ...

最新文章

  1. 对约束条件优化问题的理解
  2. HIDL示例-JAVA服务创建-Client验证-Android10.0 HwBinder通信原理(四)
  3. 尺取法——POJ3061
  4. Perl Learning (5) —— 输入与输出
  5. JXLS 2.4.0系列教程(四)——拾遗 如何做页面小计
  6. CVE-2013-4547 文件名逻辑漏洞
  7. seasar一般性配置
  8. 笔试面试常考数据结构-单链表常用操作编程实现
  9. 教你使用Python实现新个税计算器
  10. cpu为何有两个温度?
  11. JSON文件导入Unity3d中是空的的问题
  12. 范华:资产配置是非常客户化的过程
  13. python命令行清屏的简单办法_Python Shell 清屏方法
  14. 织梦php 文章采集规则,如何正确写DedeCms采集规则
  15. 深度解读Swarm/BZZ项目的风险与创新
  16. ESP8266连接网络,获取网络天气api
  17. 第三章:SCI论文写作经验分享
  18. 如何在windows 10或11下制作外接便携式可移植启动盘(以安装最新的ubuntu 22.04为例)
  19. 用计算机弹小猪佩奇,【绘本时间】小猪佩奇之弹弹球
  20. tp6字符串解析为HTML,6.字符串 · ThinkPHP5从入门到努力之入门实践 · 看云

热门文章

  1. jsp模糊查询_查询知识产权和商标专利的网站汇总!
  2. 用shp制作geoJson格式地图数据(shp convert to geoJson)
  3. proe3.0安装教程
  4. 成绩查询系统源java代码_基于jsp的成绩查询系统-JavaEE实现成绩查询系统 - java项目源码...
  5. c# mysql timeout expired_C#百万数据查询出现超时问题的解决方法
  6. python 单线程_python的单线程多任务的实现
  7. 北航计算机应用基础 统考,北航10秋学期《计算机应用基础》模拟题.doc
  8. 目标检测(R-CNN、Fast R-CNN、Fater R-CNN)
  9. 工业用微型计算机(28)-dos和bios功能调用(2)-int 21h
  10. 神经信息学整理(2)-caianiello神经方程(1)