管理过公众平台的小伙伴都知道,公众平台最重要的是图文的编辑和发布,由于微信公众平台的图文编辑页面比较简陋,功能和样式的比较少,所以一般都是使用专业的微信图文编辑器,koahub软件市场里有一款专门编辑微信图文的源码,可免费下载。

下面是微信编辑器的部分代码:

1、抓取远程图片

<?php 
/** 
* 抓取远程图片 
*/ 
set_time_limit(0); 
include("Uploader.class.php");

/* 上传配置 */ 
$config = array( 
    "pathFormat" => $CONFIG['catcherPathFormat'], 
    "maxSize" => $CONFIG['catcherMaxSize'], 
    "allowFiles" => $CONFIG['catcherAllowFiles'], 
    "oriName" => "remote.png" 
); 
$fieldName = $CONFIG['catcherFieldName'];

/* 抓取远程图片 */ 
$list = array(); 
if (isset($_POST[$fieldName])) { 
    $source = $_POST[$fieldName]; 
} else { 
    $source = $_GET[$fieldName]; 

foreach ($source as $imgUrl) { 
    $item = new Uploader($imgUrl, $config, "remote"); 
    $info = $item->getFileInfo(); 
    array_push($list, array( 
        "state" => $info["state"], 
        "url" => $info["url"], 
        "size" => $info["size"], 
        "title" => htmlspecialchars($info["title"]), 
        "original" => htmlspecialchars($info["original"]), 
        "source" => htmlspecialchars($imgUrl) 
    )); 
}

/* 返回抓取数据 */ 
return json_encode(array( 
    'state'=> count($list) ? 'SUCCESS':'ERROR', 
    'list'=> $list 
));

2、 获取已上传的文件列表

<?php 
/** 
* 获取已上传的文件列表 
*/ 
include "Uploader.class.php";

/* 判断类型 */ 
switch ($_GET['action']) { 
    /* 列出文件 */ 
    case 'listfile': 
        $allowFiles = $CONFIG['fileManagerAllowFiles']; 
        $listSize = $CONFIG['fileManagerListSize']; 
        $path = $CONFIG['fileManagerListPath']; 
        break; 
    /* 列出图片 */ 
    case 'listimage': 
    default: 
        $allowFiles = $CONFIG['imageManagerAllowFiles']; 
        $listSize = $CONFIG['imageManagerListSize']; 
        $path = $CONFIG['imageManagerListPath']; 

$allowFiles = substr(str_replace(".", "|", join("", $allowFiles)), 1);

/* 获取参数 */ 
$size = isset($_GET['size']) ? htmlspecialchars($_GET['size']) : $listSize; 
$start = isset($_GET['start']) ? htmlspecialchars($_GET['start']) : 0; 
$end = $start + $size;

/* 获取文件列表 */ 
$path = $_SERVER['DOCUMENT_ROOT'] . (substr($path, 0, 1) == "/" ? "":"/") . $path; 
$files = getfiles($path, $allowFiles); 
if (!count($files)) { 
    return json_encode(array( 
        "state" => "no match file", 
        "list" => array(), 
        "start" => $start, 
        "total" => count($files) 
    )); 
}

/* 获取指定范围的列表 */ 
$len = count($files); 
for ($i = min($end, $len) - 1, $list = array(); $i < $len && $i >= 0 && $i >= $start; $i--){ 
    $list[] = $files[$i]; 

//倒序 
//for ($i = $end, $list = array(); $i < $len && $i < $end; $i++){ 
//    $list[] = $files[$i]; 
//}

/* 返回数据 */ 
$result = json_encode(array( 
    "state" => "SUCCESS", 
    "list" => $list, 
    "start" => $start, 
    "total" => count($files) 
));

return $result;

/** 
* 遍历获取目录下的指定类型的文件 
* @param $path 
* @param array $files 
* @return array 
*/ 
function getfiles($path, $allowFiles, &$files = array()) 

    if (!is_dir($path)) return null; 
    if(substr($path, strlen($path) - 1) != '/') $path .= '/'; 
    $handle = opendir($path); 
    while (false !== ($file = readdir($handle))) { 
        if ($file != '.' && $file != '..') { 
            $path2 = $path . $file; 
            if (is_dir($path2)) { 
                getfiles($path2, $allowFiles, $files); 
            } else { 
                if (preg_match("/\.(".$allowFiles.")$/i", $file)) { 
                    $files[] = array( 
                        'url'=> substr($path2, strlen($_SERVER['DOCUMENT_ROOT'])), 
                        'mtime'=> filemtime($path2) 
                    ); 
                } 
            } 
        } 
    } 
    return $files; 
}

3、上传附件和上传视频

<?php 
/** 
* 上传附件和上传视频 
*/ 
include "Uploader.class.php";

/* 上传配置 */ 
$base64 = "upload"; 
switch (htmlspecialchars($_GET['action'])) { 
    case 'uploadimage': 
        $config = array( 
            "pathFormat" => $CONFIG['imagePathFormat'], 
            "maxSize" => $CONFIG['imageMaxSize'], 
            "allowFiles" => $CONFIG['imageAllowFiles'] 
        ); 
        $fieldName = $CONFIG['imageFieldName']; 
        break; 
    case 'uploadscrawl': 
        $config = array( 
            "pathFormat" => $CONFIG['scrawlPathFormat'], 
            "maxSize" => $CONFIG['scrawlMaxSize'], 
            "allowFiles" => $CONFIG['scrawlAllowFiles'], 
            "oriName" => "scrawl.png" 
        ); 
        $fieldName = $CONFIG['scrawlFieldName']; 
        $base64 = "base64"; 
        break; 
    case 'uploadvideo': 
        $config = array( 
            "pathFormat" => $CONFIG['videoPathFormat'], 
            "maxSize" => $CONFIG['videoMaxSize'], 
            "allowFiles" => $CONFIG['videoAllowFiles'] 
        ); 
        $fieldName = $CONFIG['videoFieldName']; 
        break; 
    case 'uploadfile': 
    default: 
        $config = array( 
            "pathFormat" => $CONFIG['filePathFormat'], 
            "maxSize" => $CONFIG['fileMaxSize'], 
            "allowFiles" => $CONFIG['fileAllowFiles'] 
        ); 
        $fieldName = $CONFIG['fileFieldName']; 
        break; 
}

/* 生成上传实例对象并完成上传 */ 
$up = new Uploader($fieldName, $config, $base64);

/** 
* 得到上传文件所对应的各个参数,数组结构 
* array( 
*     "state" => "",          //上传状态,上传成功时必须返回"SUCCESS" 
*     "url" => "",            //返回的地址 
*     "title" => "",          //新文件名 
*     "original" => "",       //原始文件名 
*     "type" => ""            //文件类型 
*     "size" => "",           //文件大小 
* ) 
*/

/* 返回数据 */ 
return json_encode($up->getFileInfo());

下载地址:http://www.koahub.com/home/product/40 
演示地址:http://1.inuoer.com/wxedit/

KoaHub.js -- 基于 Koa.js 平台的 Node.js web 快速开发框架

官网:http://js.koahub.com 

koahub软件市场微信编辑器源码,可下载的更多相关文章

  1. WeMall微信商城源码插件大转盘代码详情

    WeMall微信商城源码插件大转盘代码是用于商业推广的比较有效的方式,分享了部分比较重要的代码,供技术员学习参考 代码详情地址:http://addon.wemallshop.com/Product/ ...

  2. WeMall微信商城源码活动报名插件代码详情

    WeMall微信商城源码插件活动报名代码是用于商业推广的比较有效的方式,分享了部分比较重要的代码,供技术员学习参考,商家可自由设置报名项目,活动时间,报名内容 代码详情地址:http://addon. ...

  3. WeMall微信商城源码插件代金券部分代码

    WeMall微信商城源码插件Coupon代金券代码是用于商业推广的比较有效的方式,分享了部分比较重要的代码,供技术员学习参考 AdminController.class.php <?php na ...

  4. WeMall微信商城源码插件会员卡代码详情

    WeMall微信商城源码插件会员卡代码是用于商业推广的比较有效的方式,分享了部分比较重要的代码,供技术员学习参考 Index_index.html <html> <head> ...

  5. 微信小程序实例源码大全下载

     小程序QQ交流群:131894955  小程序开发直播腾讯课堂:  https://edu.csdn.net/course/detail/6743 微信小程序实例源码大全下载 微信小应用示例代码(p ...

  6. 对于学习apache软件基金会顶级项目源码的一点思路(转)

    ASF的开源项目,为软件行业贡献了太多好的产品和软件思维.学习ASF的项目源码能很大的提升自身的能力.程序运行在服务器上的流程:执行启动脚本(start.sh) -> 指向程序的主方法 -> ...

  7. 120多套各种类别微信小程序模板源码打包下载

    120多套各种类别微信小程序模板源码打包下载,以下是部分截图欢迎下载!120多套各种类别微信小程序模板源码打包下载 下载地址:https://pan.baidu.com/s/1Cfqyc9p2ZDOc ...

  8. 【转】Android 4.3源码的下载和编译环境的安装及编译

    原文网址:http://jingyan.baidu.com/article/c85b7a641200e0003bac95a3.html  告诉windows用户一个不好的消息,windows环境下没法 ...

  9. Android源码的下载和编译

    由于公司会安排我做硬解码这块,所以最近一直想研究一下Android源码,可是Android源码的下载真的挺麻烦的(可能是我第一次下载),参照网上的方法,没有一个可行的,现在就将我的下载过程和大家分享一 ...

随机推荐

  1. IIS8中添加WCF支持几种方法小结[图文]

    方法一 最近在做Silverlight,Windows Phone应用移植到Windows 8平台,在IIS8中测试一些传统WCF服务应用,发现IIS8不支持WCF服务svc请求,后来发现IIS8缺少 ...

  2. javascript与java编码互转

    java:java.net.URLEncoder.encode(s, "UTF-8");java.net.URLDecoder.decode(chezhanInEn,"U ...

  3. SpringMVC+RestFul详细示例实战教程

    一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于SpringMVC的配置 <!--conf ...

  4. HDU3068(Manacher算法)

    最长回文 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  5. ADO.NET 数据库操作类

    操作数据类 避免代码重用.造对象太多.不能分工开发 利用面向对象的方法,把数据访问的方式优化一下,利用封装类   一般封装成三个类: 1.数据连接类 提供数据连接对象 需要引用命名空间: using ...

  6. Struts2 struts.xml配置

    <?xml version="1.0" encoding="GBK"?> <!--指定 Struts2 的DTD信息 DTD 指 Docume ...

  7. Webappbuilder自定义widget模板

    Webappbuilder自定义widget模板 by 李远祥 到\\widgets\samplewidgets目录下拷贝 CustomWidgetTemplate 文件并重命名为MyWidget 设 ...

  8. PHP面向对象(OOP)----分页类

    > 同验证码类,分页也是在个人博客,论坛等网站中不可缺少的方式,通过分页可以在一个界面展示固定条数的数据,而不至于将所有数据全部罗列到一起,实现分页的原理其实就是对数据库查询输出加了一个limi ...

  9. MySQL架构由小变大的演变过程

    假设一个网站(discuz)从最开始访问量很小做到日pv千万,我们来推测一下它的mysql服务器架构演变过程. 第一阶段网站访问量日pv量级在1w以下.单台机器跑web和db,不需要做架构层调优(比如 ...

  10. 如何修改Window系统下PATH路径以及win8下masm32V11

    如何修改Window系统下PATH路径   //其实这个都是临时性的, 退出dos窗口就没有用了,只是做个笔记罢了   C:\Users\Administrator>    set path=E ...