可能是出于安全等考虑,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优化
