多语言展示
当前在线:805今日阅读:86今日分享:14

dedeCMS自定义模型中上传附件到自定义文件夹

需求:自定义模型中的需要带有附件,为pdf格式,客户希望能上传或在已有的文件中选择难点:dede中的附件分为三类:图片,可选文件夹是整个uploads目录;软件,可选文件夹是soft目录;多媒体,可选文件夹是media目录;自定义模型中,如果选择了附件类型则自动默认为是soft附件类型,上传文件被限制在了soft目录里面,如果选择了多媒体类型,就被限制在了media,用户不希望自己上传的pdf附件放在了soft或者media里面。(网上都是问的附件的大小限制,类型限制,附件的标签解析样式,难道没人遇到过这种需求吗??还是自己动手,丰衣足食)解决:参照soft的内容发布程序自己写一个发布程序,将附件的上传地址修改为自己的文件夹。
工具/原料

dedeCMS 5.7

方法/步骤
1

1、首先要知道为什么上传的附件只能被限制在soft里面,查看内容发布的源代码:

2

2、我们找到它的SelectSoft()函数,在eadmin-->js目录下的main.js,原来默认的附件类型的字段,会自动生成一个button,它是指向了select_soft.php,所以我们需要新建一个函数,指向自定义的文件夹

3

3、看看select_soft.php源代码,在include\dialog目录下

5

dialog目录下还需要复制一份select_soft_post.php,改名为select_publications_post.php,需要修改如下两处地方:17行,38行

6

6、找到eadmin下面的的archives_sg_add.php、 archives_sg_edit.php,各复制一份,分别改名为archives_publications_add.php、archives_publications_edit.php,找到eadmin\templets下面的的archives_sg_add.html、 archives_sg_edit.html,各复制一份,分别改名为archives_publications_add.html、archives_publications_edit.html,然后打开,进行修改,在修改之前需要做一步工作,把自定义模型中附件类型的表单类改为已固化在表单中的字段类型,别且在列表附加字段中把它加上

7

7、archives_publications_edit.html、archives_publications_add.html都需要做如下修改,因为固化字段系统不会自动解析标签出来,所以需要自己手动添加,如下图我自己添加的下载地址,button的onclick事件记得指向刚才main.js新建的函数

8

8、archives_publications_add.php修改include文件和修改insert into 代码:

9

9、archives_publications_edit.php修改include文件和修改update 代码:

10

10、最后,改一下自定义模型的发布和编辑程序就行了

11

11、附上效果图

注意事项
1

注意事项:因为修改了js文件,你需要删除本地浏览器的历史记录,不然选择附件的button不好使,

2

记得备份好soft相关的代码文件

推荐信息