管理过公众平台的小伙伴都知道,公众平台最重要的是图文的编辑和发布,由于微信公众平台的图文编辑页面比较简陋,功能和样式的比较少,所以一般都是使用专业的微信图文编辑器,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. ILSpy .NET反编译工具下载地址

    官方下载: http://ilspy.net/ 中文版下载地址: http://www.fishlee.net/soft/ilspy_chs/#C-310

  2. easelJS 初始入门

    easelJS 初始入门 <%@ page language="java" contentType="text/html; charset=UTF-8" ...

  3. 小谈JavaScript中this的用法

    "this"关键字是JavaScript中广泛应用的一种特性,但它经常也是这门语言中最容易混淆和误解的特性.那么"this"的实际意义是什么?它是如何求值的? ...

  4. CodeForces 333A

    Secrets Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submit Sta ...

  5. MD5碰撞后时代,MD5还有存在的意义吗?

    MD5是一种HASH函数,又称杂凑函数,由32位16进制组成,在信息安全范畴有广泛和首要运用的暗码算法,它有类似于指纹的运用.在网络安全协议中, 杂凑函数用来处理电子签名,将冗长的签名文件紧缩为一段一 ...

  6. 理解javascript中的Function.prototype.bind

    在初学Javascript时,我们也许不需要担心函数绑定的问题,但是当我们需要在另一个函数中保持上下文对象this时,就会遇到相应的问题了,我见过很多人处理这种问题都是先将this赋值给一个变量(比如 ...

  7. LCD驱动移植在在mini2440(linux2.6.29)和FS4412(linux3.14.78)上实现对比(deep dive)

    1.Linux帧缓冲子系统 帧缓冲(FrameBuffer)是Linux为显示设备提供的一个接口,用户可以将帧缓冲看成是显示内存的一种映像,将其映射到进程地址空间之后,就可以直接进行读写操作,而写操作 ...

  8. asp.net权限认证:OWIN实现OAuth 2.0 之密码模式(Resource Owner Password Credential)

    asp.net权限认证系列 asp.net权限认证:Forms认证 asp.net权限认证:HTTP基本认证(http basic) asp.net权限认证:Windows认证 asp.net权限认证 ...

  9. Express之get,pos请求参数的获取

    Express的版本4.X Get query参数的获取 url假设:http://localhost:3000/users/zqzjs?name=zhaoqize&word=cool& ...

  10. vs2015 动态链接库问题

    问题: 最近要用vs2015编写一个动态链接库,生成动态链接库后,换到另一台windows下发现无法使用. 使用depends检查发现原因是缺少 MSVCP140.DLL等动态链接库. 解决: 将编译 ...