帝国论坛帝国网站管理系统交流区帝国CMS使用交流[分享]实现多值字段文件上传功能 【本版专题贴子】  
 1/8     1 2 3 4 5 6 7 8 ›› ›|
主题:[分享]实现多值字段文件上传功能 [加入收藏夹]   

vlk999
用户头衔:书生

精华贴   :0
发贴数   :1
经验值   :11
注册时间:2015-06-15
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 1 楼]
[分享]实现多值字段文件上传功能
在我们添加文章的时候,往往需要同时上传该文章的多个相关附件,EmpireCMS 本身并未实现改功能。但利用多值字段的特点则可以很好的为我们解决这个问题。

详细步骤:

一、增加上传字段

1、登录后台 > 系统设置 > 数据表与系统模型 > 管理数据表,选择需要增加字段的数据表 > 管理字段 > 增加字段。

2、填写要增加字段的基本信息,字段名 > attachs(可自定义),字段类型 > 中型字符型,输入表单显示元素 > 多值字段,多值字段元素格式 > 设置列数:2(这里我们选择2列,也就是一组数据有两个数值,分别为附件名称与附件地址),确认提交。

3、回到字段管理,修改新增加的字段,我们可以看到系统自动为我们填写了【输入表单替换html代码】,把里面的代码全部复制到编辑器。

二、获取上传代码

1、字段管理 > titlepic > 修改系统字段,查看【输入表单替换html代码】,我们可以看到系统默认字段【标题图片】的实现代码。

<input name="titlepic" type="text" id="titlepic" value="<?=$ecmsfirstpost==1?"":ehtmlspecialchars(stripSlashes($r[titlepic]))?>" size="45">
<a onclick="window.open('ecmseditor/FileMain.php?type=1&classid=<?=$classid?>&infoid=<?=$id?>&filepass=<?=$filepass?>&sinfo=1&doing=1&field=titlepic<?=$ecms_hashur[ehref]?>','','width=700,height=550,scrollbars=yes');" title="选择已上传的图片"><img src="../data/images/changeimg.gif" border="0" align="absbottom"></a>

2、因为我们把第二列作为附件地址,所有 input.name = attachs_2[],input.id = attachs_2_ + 索引。在 window.open 的参数中,type 为上传类型,其中 1 = 图片,2 = FLASH,3 = 多媒体,0 = 其他,field = input.id = attachs_2_ + 索引。

三、修改默认代码

代码共有 85 行(v 7.2),要添加多文件上传,我们需要更改以下三个部分:

1、<script> 与 </script> 之间的代码,主要负责实现扩展数量功能。在其中的:
<input type="text" name="attachs_2[]" id="attachs_2_'+j+'" value="">
后追加
<a onclick="window.open(\'ecmseditor/FileMain.php?type=0&classid=<?=$classid?>&infoid=<?=$id?>&filepass=<?=$filepass?>&sinfo=1&doing=1&field=attachs_2_'+j+'<?=$ecms_hashur[ehref]?>\',\'\',\'width=700,height=550,scrollbars=yes\');" title="选择已上传的文件"><img src="../data/images/changeimg.gif" border="0" align="absbottom"></a>

2、if($ecmsfirstpost==1) 与 else,为文章添加时代码。替换其中的:
<input type="text" name="attachs_2[]" id="attachs_2_<?=$i?>" value="">
后追加
<a onclick="window.open('ecmseditor/FileMain.php?type=0&classid=<?=$classid?>&infoid=<?=$id?>&filepass=<?=$filepass?>&sinfo=1&doing=1&field=attachs_2_<?=$i?><?=$ecms_hashur[ehref]?>','','width=700,height=550,scrollbars=yes');" title="选择已上传的文件"><img src="../data/images/changeimg.gif" border="0" align="absbottom"></a>

3、else 与 } ,为文章编辑时代码。替换其中的:
<input type="text" name="attachs_2[]" id="attachs_2_<?=$j?>" value="<?=$mvf_field[1]?>">
后追加
<a onclick="window.open('ecmseditor/FileMain.php?type=0&classid=<?=$classid?>&infoid=<?=$id?>&filepass=<?=$filepass?>&sinfo=1&doing=1&field=attachs_2_<?=$i?><?=$ecms_hashur[ehref]?>','','width=700,height=550,scrollbars=yes');" title="选择已上传的文件"><img src="../data/images/changeimg.gif" border="0" align="absbottom"></a>

四、修改模型中的字段属性,选择增加字段的数据表 > 管理系统模型 > 选择增加此功能的模型 > 修改。在【选择本模型的字段项】中,找到增加的字段,勾选其录入项、可增加、可修改属性。

好了,现在可以新建个栏目测试一下了!

另:关于前台投稿是不能使用此方法的,因为上传调用的页面 FileMain.php 为后台页面,前台用户没有权限调用,如果需要前台实现此功能,这里提供给大家一个思路,在需要更改的三个部分后面追加 <input type="file" name="name[]">后,利用 【前台增加信息处理函数】 与 【前台修改信息处理函数】来上传文件与存储地址。

[该贴被修改 4 次,最后修改时间 2015-10-29 14:11:47 ]
2015-10-29 14:04:19 已设置保密 顶部 回复 引用 报告 编辑 删除

pw8
用户头衔:探花

精华贴   :0
发贴数   :8790
经验值   :22584
注册时间:2008-10-10
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 2 楼]

支持下,后台是比较好弄




2015-10-29 14:15:41 已设置保密 顶部 回复 引用 报告 编辑 删除

jiuhecai
用户头衔:探花

精华贴   :0
发贴数   :3108
经验值   :8921
注册时间:2014-07-02
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 3 楼]

支持。收藏备用



帝国插件 插件定制。帝国临时工。查杀顽固木马。专业解决难题。qq--110102296
2015-10-29 14:18:37 已设置保密 顶部 回复 引用 报告 编辑 删除

lycool
用户头衔:探花

精华贴   :0
发贴数   :4226
经验值   :10828
注册时间:2008-02-15
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 4 楼]

支持一下




2015-10-30 08:18:09 已设置保密 顶部 回复 引用 报告 编辑 删除

pmume
用户头衔:探花

精华贴   :0
发贴数   :3758
经验值   :10108
注册时间:2009-12-22
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 5 楼]

支持




东坡网 DP1037.com

帝国CMS二次开发、插件定制、性能优化、帝国站群

QQ:2253145337 帝国站长互助QQ群:308293433

2015-10-30 10:30:46 已设置保密 顶部 回复 引用 报告 编辑 删除

汪峰
用户头衔:举人

精华贴   :0
发贴数   :197
经验值   :921
注册时间:2011-11-25
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 6 楼]

支持下,后台是比较好弄,关键是前台。



批评懒货!集成太极网,网罗天下事,投稿有奖。
2015-10-30 12:42:20 已设置保密 顶部 回复 引用 报告 编辑 删除

zhxin
用户头衔:探花

精华贴   :0
发贴数   :3911
经验值   :10758
注册时间:2013-01-09
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 7 楼]

支持




2015-10-30 16:59:53 已设置保密 顶部 回复 引用 报告 编辑 删除

luoto
用户头衔:探花

精华贴   :0
发贴数   :5908
经验值   :17776
注册时间:2008-11-08
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 8 楼]

支持




2015-10-31 07:51:22 已设置保密 顶部 回复 引用 报告 编辑 删除

asdasdw
用户头衔:举人

精华贴   :0
发贴数   :158
经验值   :718
注册时间:2011-12-25
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 9 楼]

支持一下




2015-10-31 10:40:19 已设置保密 顶部 回复 引用 报告 编辑 删除

dongdudu
用户头衔:举人

精华贴   :0
发贴数   :625
经验值   :1688
注册时间:2015-01-27
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 10 楼]





2015-10-31 10:58:58 已设置保密 顶部 回复 引用 报告 编辑 删除
 1/8     1 2 3 4 5 6 7 8 ›› ›|

快速回复
内容

表情
使用EBB代码 使用smile代码 显示签名 自动分析url 自动分析img
     【进入高级模式】   (按 Ctrl+Enter 直接提交)
    顶部  加入收藏夹
关于帝国 | 广告服务 | 联系我们 | 法律声明 | 隐私条款 | 许可协议
Powered by: EBB Version 2.2.1