帝国CMS的后台是用php写的,想对帝国的后台有一个很好的了解就必须去学习php,于是,我也就开始着尝试修改帝国的后台的php文件了,应用和学习不是一回事,所以还是在应用中发现了这些问题,现在想在应用中学习php,算是在应用中学习的一种方法,这种方法很好,也很适合自己这样不怎么会自学的人,于是,今天就遇到了遮掩的一个问题,这促使自己想向php 的更加深入的层次去发展。
客户要求,修改文件上传时的附件名称为文件名。而在帝国中,默认的附件,上传后以及显示的文件名为随机的数,这就使得网页的可读性下降了,这样大家就不知道我们想要下载的文件名称是什么了,因此需要修改附件的名称,在网上我也搜索了关于这方面的资料,网上说的很清楚,但是在自己的修改下,网页没变好,反而不能在浏览了,自习查看,原来是自己的编码出现了问题,有修改编码,得以解决问题。
对于帝国CMS中的附件上传显示随机数为文件名的问题的解决办法:
打开文件\e\class\connect.php
1,查找:
$r[filetype]=GetFiletype($file_name);
在查找到的文件下面添加:
$filename2=str_replace($r[filetype], '', $file_name);//获得去掉后缀的文件名
$mytype = array (".txt", ".rar", ".zip", ".doc", ".docx", ".xlsx", ".ppt", ".pdf");//定义需要保留原名的文件类型
2,查找
$r[filename]=$r[insertfile].$r[filetype];
修改查找内容为:
if(in_array($r[filetype],$mytype)){
$r[filename]=$filename2."_".$r[insertfile].$r[filetype];//将真实文件名加在随机码的前面中间以_分隔
}
else
{
$r[filename]=$r[insertfile].$r[filetype];
}
修改完成,这样我们得到的附件名就是文件名+随机数+文件的大小
强调一点:
$mytype = array (".txt", ".rar", ".zip", ".doc", ".docx", ".xlsx", ".ppt", ".pdf");
这条语句要表达的是我们需要修改的文件的类型。不是这些类型的文件,以随机数的方式显示附件下载链接。
在我们是上传数据的时候,我们上传至服务器的文件的 格式被乱码了,原因是我们在php后台文件中的设置没有设置为utf-8格式的,因此带来的问题就是,我们无法下载自己的网站上的文件或者是附件,这句要求我们修改php源代码,来设置自己的文件名的编码格式,设置如下:
打开e/class/connect.php:
查找:
$r[yname]=$r[savepath].$r[filename];
修改为:
$r[yname]=$r[savepath].iconv("UTF-8","GBK//TRANSLIT",$r[filename]);
本文介绍了如何修改帝国CMS后台的附件上传功能,使文件名显示更直观,同时解决了上传文件格式乱码问题。

609

被折叠的 条评论
为什么被折叠?



