新聞中心
WordPress實(shí)現(xiàn)上傳文件自動(dòng)重命名的兩種方法
作者 / 無憂主機(jī) 時(shí)間 2013-03-02 17:58:44
Wordpress是一款很強(qiáng)大的博客程序,我們可以用wordpress還搭建各種不同的站點(diǎn),CMS、博客、企業(yè)站都可以。最近無憂主機(jī)www.gle-technology.com小編就用wordpress搭建了一個(gè)博客,可是每次我上傳的文件名重復(fù)的話,就會(huì)覆蓋原文件,如果文件名的有中文,就會(huì)出亂碼。這個(gè)應(yīng)該怎么辦呢?下面小編提供兩種方法參考: 第一種方法: 1、? 使用FTP工具連接你的php虛擬主機(jī),找到wordpress程序的根目錄下的/wp-admin/includes/file.php文件,編輯,找到以下代碼,如下圖所示 (你也可以使用搜索功能,搜索Move the file to the uploads dir)
// Move the file to the uploads dir $new_file = $uploads['path'] . "/$filename"; if ( false === @ move_uploaded_file( $file['tmp_name'], $new_file ) ) return $upload_error_handler( $file,
sprintf( __('The uploaded file could not be moved to %s.' ), $uploads['path'] ) );2、將上述代碼替換為:(當(dāng)然你也可以裝上述代碼注釋,方便以后還原)
// Move the file to the uploads dir $new_file = $uploads['path'] . "/".date("YmdHis").floor(microtime()*1000).".".$ext; if ( false === @ move_uploaded_file( $file['tmp_name'], $new_file ) ) return $upload_error_handler ( $file, sprintf( __('The uploaded file could not be moved to %s.' ), $uploads['path'] ) );2、? 保存file.php,這樣就可以實(shí)現(xiàn)wordpress上傳圖片自動(dòng)重命名了。 以上代碼意思就是,保存后覆蓋原文件,那么上傳文件就會(huì)以“年月日時(shí)分秒+千位毫秒整數(shù)”的格式重命名文件。這就再也不用擔(dān)心圖片文件名相同而覆蓋了原文件。 第2種方法: 1、在我們wordpress網(wǎng)站模板目錄(wp-content\themes\模塊文件名\)下的functions.php中加入以下代碼 ,直接放在functions.php文件的最后(注意是 ?> 之前,如下圖)就可以。
function new_filename($filename) { $info = pathinfo($filename); $ext = empty($info['extension']) ? ” : ‘.’ . $info['extension']; $name = basename($filename, $ext); return substr(md5($name), 0, 20) . $ext; } add_filter(‘sanitize_file_name’, ‘new_filename’, 10);2、保存functions.php,就可以了。 以上代碼將文件名稱在上傳過程中就自動(dòng)重命名了。名字規(guī)則為系統(tǒng)自動(dòng)生成的一個(gè)32位的MD5加密文件名。(因?yàn)?2位文件名有點(diǎn)長(zhǎng),所以我們?cè)趕ubstr(md5($name), 0, 20) 中截?cái)嗔藢⑵湓O(shè)置為20位). PS:兩種方法各有所長(zhǎng),第一種方法不會(huì)因?yàn)楦鼡Q模板而導(dǎo)致失效,第二種方法如果更換模板就需要重新加入代碼。 純Linux環(huán)境下高端免備案【香港獨(dú)立IP地址】 php空間,僅僅只需199元一年起。商務(wù)中國(guó)域名核心代理直銷50元注冊(cè)國(guó)際頂級(jí)域名
本文地址:http://www.gle-technology.com/wordpress/10602.html