PHP头条
热点:

phpcms模块开发之swfupload的使用介绍


正式接触phpcms模块开发后.开发了几个功能模块.其中遇到了需要批量上传图片的问题.于是开始挖掘phpcms里面的swfupload的用法.

在phpcms里面自带的内容类型里面能够直接指定图片组.不过这样的图片组功能并不是我想用的.我需要上传一整个静态的html文件.需要

能够找到一个方法上传整个文件夹.并且能够保留原来的文件名称.

目的总结如下:

1,不改变系统的文件和目录结构.

2,实现多附件上传功能.

3,能够得到上传后的文件夹名称.

在phpcms中自带了附件上传的功能.我想去用swfupload功能,而这个功能被phpcms的附件上传功能集成进去了.那我要做的就是抽出来并加以修改.

第一步,我来研究研究这个是怎么调用的.

首先,打开firefox浏览器的firebug 打开网络面板.找到phpcm中swfupload呗调出的那个按钮.看看系统是请求的什么连接.
代码如下:
?m=attachment&c=attachments&a=swfupload&args=10,,1&module=&catid=&authkey=b756a93dea2e627293e88fa9d62af709&pc_hash=iXFbo1

我们捕捉到一串这样的请求.调用了attachment模块的attachements控制器里面的swfupload方法.

我们去找到这个模块中的这个控制器里面的这个方法.

在phpcms/modoules/attachemet/attachemts.php里面

打开看看,代码如下
代码如下:
public function swfupload(){
$grouplist = getcache('grouplist','member');
if(isset($_POST['dosubmit'])){
      //if里面的内容我们暂时不看.因为这是上传之后的处理.我们要先找到是如何引入swfupload的.
} else {
if($this->isadmin==0 && !$grouplist[$this->groupid]['allowattachment']) showmessage(L('att_no_permission'));
$args = $_GET['args'];//得到参数
$authkey = $_GET['authkey'];//得到密匙
if(upload_key($args) != $authkey) showmessage(L('attachment_parameter_error'));//验证密匙
extract(getswfinit($_GET['args']));//拆分参数
$siteid = $this->get_siteid();//得到网站id
$site_setting = get_site_setting($siteid);//得到网站设置
$file_size_limit = sizecount($site_setting['upload_maxsize']*1024);//允许上传大小
$att_not_used = param::get_cookie('att_json');//得到未处理的文件列表
if(empty($att_not_used) || !isset($att_not_used)) $tab_status = ' class="on"';//如果有未处理的设置标签样式为on
if(!empty($att_not_used)) $p_status = ' hidden';//否则隐藏标签
$att = $this->att_not_used();//获取临时未处理文件列表
include $this->admin_tpl('swfupload');//这个地方才是关键.加载了这个模板.
}
}

前面的我们就先不管了 ,那是处理上传的东西.我从else开始看.首先验证了是否允许附件上传

然后从$_GET里面得到swfupload的参数args,然后去验证了密匙,密匙通过了去解析args.得到网站的id,得到网站的设置,得到允许上传附件的大小.从cookie里面得到未使用的附件列表.

设置模板里面的各种显示.最后也是最关键的.它使用了swfupload模板.也就是说我要找到这个模板.看看swfupload是怎么引过来的.

模板在这里:phpcms/modules/attachment/templates/swfupload.tpl.php

打开模板文件.模板文件上面引入了一堆文件:
代码如下:
admin_tpl('header', 'attachment');?>

相关文章

PHP之友评论

今天推荐