可能是出于安全等考虑,Dedecms程序上传图集后,会将文件名更改,例如更改成1-130409223432.jpg,但是根据Google对于图片的SEO优化指引,这样的图片文件名不太友好。
因此我想保留原有的图片文件名,例如beautiful_shoes.jpg。
网上有人说将dede目录下的swfupload.php中的$filename = $cuserLogin->getUserID().'-'.dd2char(MyDate('ymdHis', time()));改成$filename=$Filedata_name;
更改后,我发现上传后的文件多了一个后缀名,例如原来本地图片是beautiful_shoes.jpg,通过图集上传后成了beautiful_shoes.jpg.jpg,请问如何去掉这个多出来的这个jpg呢?
查看源码
打印代码帮助
01 | //保存原图 |
02 | $filedir=$cfg_image_dir.'/'.MyDate($cfg_addon_savetype, time()); |
03 | if(!is_dir(DEDEROOT.$filedir)) |
04 | { |
05 | MkdirAll($cfg_basedir.$filedir,$cfg_dir_purview); |
06 | CloseFtp(); |
07 | } |
08 | $filename=$Filedata_name; |
09 | if(file_exists($cfg_basedir.$filedir.'/'.$filename) ) |
10 | { |
11 | for($i=50;$i<= 5000;$i++) |
12 | { |
13 | if( !file_exists($cfg_basedir.$filedir.'/'.$i.'-'.$filename) ) |
14 | { |
15 | $filename=$i.'-'.$filename; |
16 | break; |
17 | } |
18 | } |
19 | } |
20 | $fileurl=$filedir.'/'.$filename; |
21 | $rs=copy($FiledataNew,$cfg_basedir.$fileurl); |
22 | unlink($FiledataNew); |
23 | if(!$rs) |
24 | { |
25 | echo"ERROR: Copy Uploadfile Error! "; |
26 | exit(0); |
27 | } |
经过本站测试,通过此方法更改后,确实可以保证原文件名上传也不会修改,但有一个小问题,就是水印会失效,大家可以自己找找原因。
目前已经测试通过,IE9浏览器,FF火狐浏览器,GG谷歌浏览器 下 完美支持中文图片名,非常利于SEO优化
免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)