創(chuàng)建新模塊登陸系統(tǒng) -> 快捷入口 -> 系統(tǒng)管理 -> 擴(kuò)展 -> 模塊管理 -> 設(shè)計(jì)新模塊,步驟如下圖" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢(xún) 在線咨詢(xún)
15158846557 在線咨詢(xún)
所在位置: 首頁(yè) > 營(yíng)銷(xiāo)資訊 > 網(wǎng)站運(yùn)營(yíng) > 微擎模塊開(kāi)發(fā)之FTP上傳模塊

微擎模塊開(kāi)發(fā)之FTP上傳模塊

時(shí)間:2023-06-09 08:57:02 | 來(lái)源:網(wǎng)站運(yùn)營(yíng)

時(shí)間:2023-06-09 08:57:02 來(lái)源:網(wǎng)站運(yùn)營(yíng)

微擎模塊開(kāi)發(fā)之FTP上傳模塊:

前言

公司需要一個(gè)新模塊用來(lái)上傳微信驗(yàn)證txt文件到網(wǎng)站根目錄,這里記錄下開(kāi)發(fā)過(guò)程,供大家參考。

創(chuàng)建新模塊

登陸系統(tǒng) -> 快捷入口 -> 系統(tǒng)管理 -> 擴(kuò)展 -> 模塊管理 -> 設(shè)計(jì)新模塊,步驟如下圖:

























找到位置后,開(kāi)始填寫(xiě)表單,因?yàn)楣δ鼙容^簡(jiǎn)單,填寫(xiě)不多,內(nèi)容如下:













填寫(xiě)完畢,下方兩個(gè)選項(xiàng):







這里看需求吧,我選的是直接生成,方便下一步開(kāi)發(fā)。

查看模塊

生成完畢,在系統(tǒng)管理 -> 擴(kuò)展 -> 模塊管理 -> 安裝模塊 出可找到將其安裝。













確定提示,安裝完畢后,在 系統(tǒng)管理 -> 擴(kuò)展 -> 模塊管理 -> 已安裝模塊出可找到







在 營(yíng)銷(xiāo)模塊 -> 常用服務(wù)和工具 處可找到菜單







點(diǎn)擊之后出現(xiàn) 核心功能設(shè)置 頁(yè)面,因?yàn)檫€沒(méi)開(kāi)始細(xì)致開(kāi)發(fā),所以暫時(shí)是空白的







最后在看看addons目錄下生成的文件







各文件作用如下:

初步創(chuàng)建模塊結(jié)束

細(xì)致開(kāi)發(fā)

入口菜單

下一步增在核心功能頁(yè)面增加兩個(gè)菜單,分別為:上傳設(shè)置 和 立即上傳

打開(kāi)插件目錄下的manifest.xml文件,在<bindings></bindings>節(jié)點(diǎn)中新增一個(gè)節(jié)點(diǎn),代碼如下:

<bindings> <menu> <entry title="立即上傳" do="do" state="" direct="false" /> </menu></bindings>保存,上傳,預(yù)覽:







這里居然沒(méi)有反應(yīng),沒(méi)錯(cuò),不管更新多少次緩存,依舊沒(méi)反應(yīng),檢查確認(rèn)文件確實(shí)已經(jīng)上傳了,那么為什么呢?

答案是:卸載模塊,重新安裝即可。

那么卸載安裝后,效果如下:







編寫(xiě)功能

就最初程序功能設(shè)計(jì)來(lái)說(shuō),相關(guān)設(shè)置是固定死的了,那么現(xiàn)在只需實(shí)現(xiàn)一個(gè)功能,就是管理員選擇文件上傳。

開(kāi)始第一步,當(dāng)前模塊文件夾下新建site.php文件(微站頁(yè)面),在template文件夾下新建ftp_do.html(上傳操作模板)

site.php代碼:

<?php/** * 微站頁(yè)面 * @author chenyanphp@qq.com */defined('IN_IA') or exit('Access Denied');class Root_FtpModuleSite extends WeModuleSite{ /** * Ftp具體上傳操作 */ public function doWebDo() { // 模板 include $this->template("ftp_do"); }}ftp_do代碼:

{template 'common/header'}hello{template 'common/footer'}重新安裝,查看頁(yè)面:







ok,說(shuō)明兩個(gè)文件和模板指定都是沒(méi)問(wèn)題的。

第二步,開(kāi)始細(xì)致編寫(xiě)site.php和ftp_do.html兩個(gè)文件的代碼。

ftp_do.html中就是一個(gè)表單,因?yàn)闆](méi)有從微擎提供的函數(shù)庫(kù)中找到file相關(guān)方法(只看到了上傳圖片等相關(guān)的函數(shù),如:tpl_form_field_image()),表單還是采用php原始方案吧,省心。

ftp_do.html代碼如下:

{template 'common/header'}<form method="post" action="" enctype="multipart/form-data"> <div class="form-group"> <input id="thefile" name="thefile" type="file" style="display:none"> <div class="input-append"> <div class="col-xs-4"> <input id="file_name" class="form-control" type="text" style="height:30px;"> </div> <a class="btn btn-primary" onclick="$('input[id=thefile]').click();">瀏覽文件</a> </div> </div> <input type="submit" class="btn btn-success" name="sub" value="立即上傳"></form><script type="text/javascript"> $('input[id=thefile]').change(function() { $('#file_name').val($(this).val()); });</script>{template 'common/footer'}然后site.php代碼就簡(jiǎn)單了,限制某些參數(shù),實(shí)現(xiàn)上傳:

<?php/** * 微站頁(yè)面 * @author chenyanphp@qq.com */defined('IN_IA') or exit('Access Denied');class Root_FtpModuleSite extends WeModuleSite{ private $_max_size = 20; // 最大20字節(jié),實(shí)際微信MP_*.txt 只有16字節(jié) private $_file_type = 'txt'; // 只允許上傳txt文件 private $_error_code = [ // 錯(cuò)誤碼 0 => '沒(méi)有錯(cuò)誤發(fā)生,文件上傳成功', 1 => '上傳的文件超過(guò)了 php.ini 中 upload_max_filesize 選項(xiàng)限制的值', 2 => '上傳文件的大小超過(guò)了 HTML 表單中 MAX_FILE_SIZE 選項(xiàng)指定的值', 3 => '文件只有部分被上傳', 4 => '沒(méi)有文件被上傳' ]; /** * Ftp具體上傳操作 */ public function doWebDo() { if ($_POST['sub']) { $file = $_FILES['thefile']; if ($file) { // 若所有檢測(cè)都通過(guò) 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 '<script>alert("上傳成功!")</script>'; } else { echo '<script>alert("上傳失敗!")</script>'; } } } } include $this->template("ftp_do"); } /** * 檢測(cè)文件上傳是否出錯(cuò) * * @param $error_code * @return bool */ private function _checkError($error_code) { if ($error_code > 0) { echo '<script>alert("'.$this->_error_code[$error_code].'");</script>'; return false; } return true; } /** * 檢測(cè)文件大小是否符合要求 * * @param $size * @return bool */ private function _checkMaxSize($size) { if ($size > $this->_max_size) { echo '<script>alert("上傳文件大小必須在20字節(jié)以?xún)?nèi)!");</script>'; return false; } return true; } /** * 檢測(cè)文件格式是否符合要求 * * @param $type * @return bool */ private function _checkFileType($type) { if ($type['extension'] != $this->_file_type) { echo '<script>alert("上傳文件格式必須為txt!");</script>'; return false; } return true; } /** * 檢測(cè)文件是否已存在 * * @param $filename * @return bool */ private function _chekFileIsExists($filename) { if (file_exists('/'.$filename)) { echo '<script>alert("文件已存在,請(qǐng)勿再次上傳!");</script>'; return false; } return true; }}代碼完成,開(kāi)始操作:



















上傳成功,查看ftp驗(yàn)證:







Ok!搞定了。

總結(jié)

作為一個(gè)用于上傳txt驗(yàn)證文件的模塊,到此為止就開(kāi)發(fā)完了,仔細(xì)算起來(lái),其實(shí)沒(méi)什么東西,功能就是一個(gè)簡(jiǎn)單的上傳,因?yàn)槭且郧皼](méi)弄過(guò)微擎的模塊,網(wǎng)上資料不是太多,所以稍微饒了點(diǎn)彎,希望這篇文章對(duì)大家開(kāi)發(fā)模塊有幫助吧。

下載

GitHub地址:https://github.com/qingye5786...

關(guān)鍵詞:

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉