摘要:前言公司需要一個新模塊用來上傳微信驗證文件到網站根目錄,這里記錄下開發過程,供大家參考。
前言
公司需要一個新模塊用來上傳微信驗證txt文件到網站根目錄,這里記錄下開發過程,供大家參考。
創建新模塊登陸系統 -> 快捷入口 -> 系統管理 -> 擴展 -> 模塊管理 -> 設計新模塊,步驟如下圖:
找到位置后,開始填寫表單,因為功能比較簡單,填寫不多,內容如下:
填寫完畢,下方兩個選項:
這里看需求吧,我選的是直接生成,方便下一步開發。
查看模塊生成完畢,在系統管理 -> 擴展 -> 模塊管理 -> 安裝模塊 出可找到將其安裝。
確定提示,安裝完畢后,在 系統管理 -> 擴展 -> 模塊管理 -> 已安裝模塊出可找到
在 營銷模塊 -> 常用服務和工具 處可找到菜單
點擊之后出現 核心功能設置 頁面,因為還沒開始細致開發,所以暫時是空白的
最后在看看addons目錄下生成的文件
各文件作用如下:
template文件夾 存放模板文件夾
module.php 這個文件內容為微擎模塊定義, 應為 WeModule 類的派生類. 請參閱(微擎處理流程-模塊定義)
manifest.xml 描述文件
preview.jpg 模塊封面, 規格為600px*350px
icon.jpg 模塊圖標, 規格為48px*48px
初步創建模塊結束
細致開發 入口菜單下一步增在核心功能頁面增加兩個菜單,分別為:上傳設置 和 立即上傳
打開插件目錄下的manifest.xml文件,在
保存,上傳,預覽:
這里居然沒有反應,沒錯,不管更新多少次緩存,依舊沒反應,檢查確認文件確實已經上傳了,那么為什么呢?
答案是:卸載模塊,重新安裝即可。
那么卸載安裝后,效果如下:
編寫功能就最初程序功能設計來說,相關設置是固定死的了,那么現在只需實現一個功能,就是管理員選擇文件上傳。
開始第一步,當前模塊文件夾下新建site.php文件(微站頁面),在template文件夾下新建ftp_do.html(上傳操作模板)
site.php代碼:
template("ftp_do"); } }
ftp_do代碼:
{template "common/header"} hello {template "common/footer"}
重新安裝,查看頁面:
ok,說明兩個文件和模板指定都是沒問題的。
第二步,開始細致編寫site.php和ftp_do.html兩個文件的代碼。
ftp_do.html中就是一個表單,因為沒有從微擎提供的函數庫中找到file相關方法(只看到了上傳圖片等相關的函數,如:tpl_form_field_image()),表單還是采用php原始方案吧,省心。
ftp_do.html代碼如下:
{template "common/header"}{template "common/footer"}
然后site.php代碼就簡單了,限制某些參數,實現上傳:
"沒有錯誤發生,文件上傳成功", 1 => "上傳的文件超過了 php.ini 中 upload_max_filesize 選項限制的值", 2 => "上傳文件的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值", 3 => "文件只有部分被上傳", 4 => "沒有文件被上傳" ]; /** * Ftp具體上傳操作 */ public function doWebDo() { if ($_POST["sub"]) { $file = $_FILES["thefile"]; if ($file) { // 若所有檢測都通過 if ($this->_checkError($file["error"]) && $this->_checkMaxSize($file["size"]) && $this->_checkFileType(pathinfo($file["name"])) && $this->_chekFileIsExists($file["name"])) { if (move_uploaded_file($file["tmp_name"], IA_ROOT."/".$file["name"])) { echo ""; } else { echo ""; } } } } include $this->template("ftp_do"); } /** * 檢測文件上傳是否出錯 * * @param $error_code * @return bool */ private function _checkError($error_code) { if ($error_code > 0) { echo ""; return false; } return true; } /** * 檢測文件大小是否符合要求 * * @param $size * @return bool */ private function _checkMaxSize($size) { if ($size > $this->_max_size) { echo ""; return false; } return true; } /** * 檢測文件格式是否符合要求 * * @param $type * @return bool */ private function _checkFileType($type) { if ($type["extension"] != $this->_file_type) { echo ""; return false; } return true; } /** * 檢測文件是否已存在 * * @param $filename * @return bool */ private function _chekFileIsExists($filename) { if (file_exists("/".$filename)) { echo ""; return false; } return true; } }
代碼完成,開始操作:
上傳成功,查看ftp驗證:
Ok!搞定了。
總結作為一個用于上傳txt驗證文件的模塊,到此為止就開發完了,仔細算起來,其實沒什么東西,功能就是一個簡單的上傳,因為是以前沒弄過微擎的模塊,網上資料不是太多,所以稍微饒了點彎,希望這篇文章對大家開發模塊有幫助吧。
下載GitHub地址:https://github.com/qingye5786...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/30579.html
開發微擎模塊的時候 常會遇到一個問題:只有服務號才能直接在網頁上獲取OpenID,如果是訂閱號就只能從對話消息中獲取OpenID然后傳到網頁,雖然微擎有個功能叫做借用oAuth權限,但是有時候連借都沒地方借,怎么辦呢?還好這是個互聯網時代,有需求,就會有服務。微信之門就是為此而生的,轉發一下他們的簡介: 微信打開的網頁,是無法持久存貯 cookies 的,你知道嗎? 那么如何辨識唯一用戶呢?是的,...
摘要:擴展支持多用戶并發訪問與線程池。項目請見初學網絡編程之服務器。不允許超過磁盤配額。該文件是一個使用模塊編寫的線程池類。這一步就做到了線程池的作用。 對MYFTP項目進行升級。擴展支持多用戶并發訪問與線程池。MYFTP項目請見python初學——網絡編程之FTP服務器。 擴展需求 1.在之前開發的FTP基礎上,開發支持多并發的功能2.不能使用SocketServer模塊,必須自己實現多線...
摘要:并可以實現,功能對用戶進行磁盤配額,每個用戶的可用空間不同使用模塊檢查用戶目錄的空間上文件大小,如果大于就不讓傳輸。不允許超過磁盤配額。文件的傳輸過程中顯示精度條。用戶價值實現一套自己的服務端與客戶端。 MYFTP是我寫的模擬FTP服務端和客戶端交互的程序。通過使用socket去模擬ftp的文件下載與上次兩個核心功能。并不是使用真實FTP協議去實現。 基本需求 用戶加密認證 # ha...
摘要:例如模擬表單向某個地址發送數據在無驗證碼的情況下模擬表單完成用戶登陸上傳某個文件到遠程服務器請求遠程服務器提供的某些功能支持和協議。我們在使用過程當中,如果沒有基礎根本不知道如何開發微信公眾號。 微信微博公眾號、QQ公眾號、地圖和很多的第三方功能提供都是采用http 的API(應用程序)形式向開發人員提供的功能。 如果你只希望能夠做些簡單的微信公眾號、QQ公眾號等小應用,深入學習PHP...
摘要:主有前端后端,并加,各一名。本著工欲善其事,必先利其器的理念,一直以來在工作效率這塊,略懷執念一個問題不應該被解決兩次。下圖為開發項目機制所涉及到的插件工欲善其事,必先利其器,語言,框架皆可以歸結為器而不當僅局限于開發工具以及機。 原文鏈接: http://www.jeffjade.com/2016/05/08/106-vue-es6-jade-scss-webpack-gulp/ 一...
閱讀 2571·2021-09-26 10:13
閱讀 5969·2021-09-08 10:46
閱讀 686·2019-08-30 15:53
閱讀 2957·2019-08-29 16:13
閱讀 2750·2019-08-26 12:23
閱讀 3478·2019-08-26 11:24
閱讀 1085·2019-08-23 18:09
閱讀 1028·2019-08-23 17:08