# 帝国cms后台上传图片功能二开

*Published:* 2023-10-21
*Author:* 客服001

#### 温馨提醒

如果文章内容或图片资源失效，请留言反馈，我们会及时处理，谢谢

本文最后更新于2023年10月21日，已超过 180天没有更新



**前台上传：**

1、上传的文件名字为file,即后台可以通过$\_FILES\['file'\]来获取文件内容

2、帝国cms默认采用的是form提交的方式来上传文件。

3、上传的文件域字段为:tmp\_name,name,type,size，都可以通过$\_FILES\['file'\]\[$varname\]来访问

4、同时提交字段为：tranurl,no,classid,type，其中tranurl为远程文件的地址 ，即需要保存远程文件的时候调用需要将这个写上

5、然后调用e/admin/ecmseditor/ecmseditor.php里面的TranFile来上传数据的功能。

**后台入库：**

```
tranfrom://1来自编辑器上传
filetime://time()，当前时间
filesize://文件大小，int
classid://
id://
cjid://采集id号
fpath://int类型
type://int类型，1上传图片，2上传flash,3上传多媒体，其他：上传附件，其中，3和其他，帝国cms并未实现，估计商业版的才会实现 。
modtype:// int 0信息，5公共，6会员，不传为其它
filename://字符串
no://文件别名，（真是一个奇葩的字段）
adduser://增加的用户
path://路径
pubid://
fstb://附件表
```

入库时会根据modtype的不同，进入不同的附件表，下面的具体的表名

> 信息enewsfile\_$fstb5  
> 公共enewsfile\_public6  
> 会员enewsfile\_member  
> 其他enewsfile\_other

modtype表名0，如果 modtype为0，则需要使用GetInfoTranFstb($classid,$infoid,0);这个方法，来调用得到fstb这个分表id号。

$filetype=GetFiletype($file\_name)//得到文件后辍名。

CheckSaveTranFiletype($filetype)//得到是否是允许的

**文件上传：**

根据classid以及id得到文件的存放路径，然后就可以直接用move\_uploaded\_file所文件放到那个地方了。

得到文件扩展名GetFiletype($\_FILES\['file'\]\['name'\])//返回$r\[filetype\] 扩展名，如.jpg

得到插入的文件名ReturnDoTranFilename($\_FILES\['file'\]\['name'\],$classid)//返回$r\[insertfile\]//得到文件名称，如sdlfkjsldfjsldfjoiwelwj2938223l2

组合成文件名$r\[insertfile\].$r\[filetype\]//得到文件名返回$r\[filename\]

入库后，再进行是否获得缩略图getsmall和添加水印getmark，操作;

如果需要添加水印和获取缩略图，会先后调用GetMySmallImg和GetMyMarkImg函数进行操作。详情参见/e/admin/ecmseditor/editorfun.php。

然后就可以返回信息了。