1. 云栖社区>
  2. PHP教程>
  3. 正文

帝国cms中的关于对附件乱码,随机数码问题的修改

作者:用户 来源:互联网 时间:2017-12-01 09:34:49

问题乱码附件

帝国cms中的关于对附件乱码,随机数码问题的修改 - 摘要: 本文讲的是帝国cms中的关于对附件乱码,随机数码问题的修改,              帝国CMS的后台是用php写的,想对帝国的后台有一个很好的了解就必须去学习php,于是,我也就开始着尝试修改帝国的后台的php文件了,应用和学习不是一回事,所以还是在应用中发现了这些问题,现在想在应用中学习php

             帝国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]);

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索问题 , 乱码 , 附件 , ,以便于您获取更多的相关知识。