当前位置: 首页 > 后端技术 > PHP

微引擎开发的FTP上传模块

时间:2023-03-29 18:54:00 PHP

前言公司需要一个新的模块,将微信验证txt文件上传到网站根目录。这里记录一下开发过程,供大家参考。新建模块登录系统->快速进入->系统管理->扩展->模块管理->设计新模块,步骤如下图:找到位置后,开始填写表格,因为功能比较简单,填写的不多,内容如下:填写完成后,下面有两个选项:这里看需求,我选择直接生成,方便下一步的发展。查看模块是否生成,可以在系统管理->扩展->模块管理->安装模块中找到并安装。确认提示。安装完成后,可以在系统管理->扩展->模块管理->已安装的模块中找到。您可以在营销模块->公共服务和工具中找到它。点击菜单后会出现核心功能设置页面,因为还没有开始精心开发,所以暂时空白。最后查看addons目录下生成的文件。各文件作用如下:template文件夹存放模板文件夹module.php。这个文件的内容是微引擎模块的定义,应该是WeModule类的派生类。请参考(微引擎处理流程-模块定义)manifest.xml描述文件preview.jpg模块封面,规格为600px*350pxicon.jpg模块图标,规格为48px*48px模块初始创建完成,详细开发入口菜单添加到核心下一步在功能页面添加两个菜单,分别是:上传设置和立即上传打开插件目录下的manifest.xml文件,在节点添加新节点,代码如下:

保存、上传、预览:这里没有任何反应,是的,不管缓存更新多少次,还是没有反应,检查确认文件确实已经上传了,这是为什么呢?答案是:卸载模块并重新安装。然后卸载安装后效果如下:写入功能是根据最初的程序功能设计,相关设置固定的,所以现在只需要实现一个功能,即管理员选择文件到上传。开始第一步,在当前模块文件夹下新建site.php文件(微站点页面),在模板文件夹下新建ftp_do.html(上传操作模板)site.php代码:template("ftp_do");}}ftp_docode:{template'common/header'}hello{template'common/footer'}重新安装,查看页面:ok,说明文件和模板都指定没问题。第二步,开始认真编写site.php和ftp_do.html这两个文件的代码。ftp_do.html中有一个表单,因为Microengine提供的函数库中没有文件相关的方法(只看到上传图片等相关函数,如: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特定的上传操作*/publicfunctiondoWebDo(){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['姓名'])){echo'';}else{echo'';}}}}包含$this->template("ftp_do");}/***检查文件上传是否有错误**@param$error_code*@returnbool*/privatefunction_checkError($error_code){if($error_code>0){echo'';返回假;}返回真;}/***检查文件大小是否满足要求**@param$size*@returnbool*/privatefunction_checkMaxSize($size){if($size>$this->_max_size){echo'';返回假;}返回真;}/***检查文件格式是否符合要求**@param$type*@returnbool*/privatefunction_checkFileType($type){if($type['extension']!=$this->_file_type){echo'alert("该文件已存在,请勿再次上传!");';返回假;}返回真;检查ftp验证:好的!完成总结作为上传txt校验文件的模块,至此开发完成。仔细一算,其实也没什么。功能是简单的上传,因为是之前Microengine没用过的模块,网上的资料也不是太多,所以就大方一点。希望这篇文章对大家开发模块有所帮助。下载GitHub地址:https://github.com/qingye5786...