phpcms上传php文件,phpcms v9 表单添加文件上传字段单个文件上传功能

phpcms v9提供了强大的模型管理功能,可以自定义字段,更符合自己的业务逻辑,那么如何二开一个单文件上传功能呢,跟着我一步一步操作,实现你需求的业务逻辑。

第一步 添加模型添加字段类型选项

在模型添加字段的配置文件目录./phpcms/modules/content/fields/fields.class.php 约  23行  位置,插入一行

'file'=>'文件上传',

第二步 先复制一份多文件上传的原始文件夹

打开目录 ./phpcms/modules/content/fields/downfile/所有内容,拷贝到新建file目录./phpcms/modules/formguide/fields/file下。

复制出来的文件目录结构如下:

243b540ad6ebaa384e8a9a4f12fbd6a4.png

第三步  修改方法名,防止重名导致报错

将form.inc.php、input.inc.php、output.inc.php三个文件的方法名  downfile 改成 file  。form.inc.php还需替换代码 ,下面会有详细介绍。

注:这三个文件的方法名要也目录名,还有定义的添加模型添加字段类型相同(第一步的名字file)

function file($field, $value, $fieldinfo) {

//内容区原封不动,只改方法名

}

第四步 替换几个文件代码

1、复制以下代码替换field_add_form.inc.php文件的代码:

$server_list = getcache('downservers','commons');

foreach($server_list as $_r) if (in_array($_r['siteid'],array(0,$this->siteid))) $str .=''.$_r['sitename'].'';

?>

允许上传的文件类型
是否从已上传中选择 是  否
允许同时上传的个数

2、复制以下代码替换field_edit_form.inc.php文件代码:

defined('IN_PHPCMS') or exit('No permission resources.');

$server_list = getcache('downservers','commons');

foreach($server_list as $_r) if (in_array($_r['siteid'],array(0,$this->siteid))) $str .=''.$_r['sitename'].'';

?>

允许上传的文件类型" size="40" class="input-text">
是否从已上传中选择> 是 > 否
允许同时上传的个数" size=3>

这两步是去除一些无用的标签,可以直接复制  或参考以上的代码修复即可。

3、最重要的是替换form.inc.php里面的代码:

注:主要功能是由这个文件来实现的,一定要替换对。

function file($field, $value, $fieldinfo) {

$list_str = $str = '';

extract(string2array($fieldinfo['setting']));

$string = '';

if(!defined('IMAGES_INIT')) {

$str = '';

define('IMAGES_INIT', 1);

}

$authkey = upload_key("$upload_number,$upload_allowext,$isselectimage");

$string .= $str."  catid','{$authkey}')\"/ value='上传视频'>";

return $string;

}

4、修改输入写入数据库方法文件input.inc.php,使用如下代码:

function file($field, $value) {

//取得下载文件路径返回

$result = $value;

return $result;

}

5、修改输出方法 output.inc.php,使用如下代码:

function file($field, $value) {

return $value;

}

第五步 修改\statics\js\swfupload\swf2ckeditor.js 文件

上面几步完成后,即可实现上传功能  不过为了直接改成自己想要的上传文件路径,还需要修改一下js文件。

打开文件找到约 33行  将

var new_filepath = in_content[0].replace(uploadurl,'/');

替换为:

var new_filepath = in_content[0];

即可。

注:phpcms默认的上传文件大小是2M,可以登录后台,点击设置->站点管理->修改 ,还可以改允许上传的文件类型,以视频为例 增加了mp4的类型,可以根据你的实际需求增加。

直接预览模型测试上传看一下效果吧!!!

效果如下:

cd751b9787ce468721a3e2a9102ec696.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值