文章cms采集(帝国cms后台上传图片是常用的功能,现在分解一下上传)
优采云 发布时间: 2022-02-13 17:02文章cms采集(帝国cms后台上传图片是常用的功能,现在分解一下上传)
Empirecms后台上传图片是常用的功能。现在让我们分解上传的内容:
1.上传的文件名为file,即后台可以通过$_FILES['file']获取文件内容
2.Empirecms默认使用表单提交方式上传文件。
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(),当前时间
文件大小://文件大小,整数
班级号://
ID://
cjid://采集*敏*感*词*号
fpath://int 类型
type://int类型,1上传图片,2上传flash,3上传多媒体,其他:上传附件,其中3等,Empirecms没有实现,估计商业版会实施的。
modtype:// int 0 info, 5 public, 6 member, 不要作为其他传递
文件名://字符串
no://file 别名,(真的是一个奇怪的字段)
adduser://添加用户
路径://路径
公开://
fstb://附件表
进入仓库时,会根据modtype进入不同的附件表。
具体表名如下
模组类型
表名
0 条信息
enewsfile_$fstb
5公开
enewsfile_public
6名成员
新闻文件成员
其他
enewsfile_other
如果 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)//return $r[insertfile]//获取文件名,如sdlfkjsldfjsldfjoiwelwj2938223l2
组合成一个文件名 $r[insertfile].$r[filetype]//获取文件名并返回 $r[filename]
************************上传逻辑结束********************
仓储
入库后是否获取缩略图getsmall和加水印getmark,操作;
如果需要添加水印和获取缩略图,会依次调用 GetMySmallImg 和 GetMyMarkImg 函数。有关详细信息,请参阅 /e/admin/ecmseditor/editorfun.php。
然后可以返回信息。