管理過公眾平台的小夥伴都知道,公眾平台最重要的是圖文的編輯和發布,由於微信公眾平台的圖文編輯頁面比較簡陋,功能和样式的比較少,所以一般都是使用專業的微信圖文編輯器,koahub軟體市場裡有一款專門編輯微信圖文的源碼,可免費下載。
管理過公眾平台的小夥伴都知道,公眾平台最重要的是圖文的編輯和發布,由於微信公眾平台的圖文編輯頁面比較簡陋,功能和样式的比較少,所以一般都是使用專業的微信圖文編輯器,koahub軟體市場裡有一款專門編輯微信圖文的源碼,可免費下載。
下面是微信編輯器的部分程式碼:
1.抓取遠端圖片
/**
* 抓取遠端圖片
*/
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、 取得上傳的文件清單
/**
* 取得上傳的文件清單
*/
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 = 0 && $i >= $start; $i--){
$list[] = $files[$i];
}
//倒序
//for ($i = $end, $list = array(); $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 。 $文件;
if (is_dir($path2)) {
getfiles($path2, $allowFiles, $files);
} 其他 {
if (preg_match("/.(".$allowFiles.")$/i", $file)) {
$檔[] = 陣列(
'網址'=> substr($path2, strlen($_SERVER['DOCUMENT_ROOT'])),
'時間'=> filemtime($path2)
);
}
}
}
}
返回$文件;
}
3.上傳附件和上傳影片
/**
* 上傳附件和上傳影片
*/
包含“Uploader.class.php”;
/* 上傳配置 */
$base64 = "上傳";
開關 (htmlspecialchars($_GET['action'])) {
案例「上傳圖片」:
$config = 陣列(
“路徑格式”=> $CONFIG['imagePathFormat'],
“最大尺寸”=> $CONFIG['imageMaxSize'],
「允許檔案」=> $CONFIG['imageAllowFiles']
);
$fieldName = $CONFIG['imageFieldName'];
休息;
案例「上傳抓取」:
$config = 陣列(
“路徑格式”=> $CONFIG['scrawlPathFormat'],
“最大尺寸”=> $CONFIG['scrawlMaxSize'],
「允許檔案」=> $CONFIG['scrawlAllowFiles'],
"oriName" =>; “潦草.png”
);
$fieldName = $CONFIG['scrawlFieldName'];
$base64 = "base64";
休息;
案例“上傳影片”:
$config = 陣列(
「路徑格式」=> $CONFIG['videoPathFormat'],
“最大尺寸”=> $CONFIG['videoMaxSize'],
「允許檔案」=> $CONFIG['videoAllowFiles']
);
$fieldName = $CONFIG['videoFieldName'];
休息;
案例“上傳文件”:
預設:
$config = 陣列(
“路徑格式”=> $CONFIG['filePathFormat'],
“最大尺寸”=> $CONFIG['fileMaxSize'],
「允許檔案」=> $CONFIG['fileAllowFiles']
);
$fieldName = $CONFIG['fileFieldName'];
休息;
}
/* 產生實例上傳物件並完成上傳 */
$up = new Uploader($fieldName, $config, $base64);
/**
* 得到上傳檔案所對應的各個參數,陣列結構
* array(
* "state" => "", //上傳狀態,上傳成功時必須回傳"SUCCESS"
* "url" => "", //傳回的位址
* "title" => "", //新檔名
* "original" => "", //原始檔名
* "type" => "" //檔案類型
* "size" => "", //檔案大小
* )
*/
/* 回傳資料 */
返回 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