新聞中心
joomla手動(dòng)實(shí)現(xiàn)后臺(tái)上傳和縮略圖入庫擴(kuò)展實(shí)現(xiàn)方法分享
小編發(fā)現(xiàn)我們無憂主機(jī)joomla的教程比較少,今天說說joomla的一個(gè)實(shí)用功能就是——如何擴(kuò)展上傳圖片的同時(shí)生成縮略圖,這樣就不用在顯示圖的時(shí)候設(shè)置寬度高度,而且可以讓頁面加載很快,對(duì)于圖片展示類型網(wǎng)站和模版類網(wǎng)站,小編認(rèn)為大家都需要這樣一個(gè)實(shí)用的功能的吧.在joomla1.5版本沒有自帶這個(gè)功能,其實(shí)這個(gè)功能是可以實(shí)現(xiàn)的,并且在上傳的時(shí)候自動(dòng)存入數(shù)據(jù)庫.在數(shù)據(jù)庫里面,用當(dāng)前時(shí)間戳來保存圖片名字,這樣不會(huì)有重命名問題.如果大家想保存原名字,那么可以存入數(shù)據(jù)庫。對(duì)于圖片,只保存一張圖片文件的名字,縮略圖我們使用前綴_時(shí)間戳來保存,時(shí)間戳和大圖是一樣的.這樣可以減少一個(gè)字段。好了原理就是這樣。接下來小編就教大家如何實(shí)現(xiàn)這個(gè)功能: 對(duì)于上傳來的圖片,需要進(jìn)行處理,小編得到的圖像代碼 代碼如下: $file = JRequest::getVar( 'template_full_image', '', 'files', 'array' );//獲得傳過來的圖片 jimport('joomla.filesystem.file'); $filenameext=explode(".",$file['name']); $filenameextcount=count($filenameext); $outputfile= time().".".$filenameext[(int)$filenameextcount-1]; $filepath = JPath::clean(JPATH_ROOT.DS.'components/com_templateshow/upload/images/'.strtolower($outputfile)); if (!JFile::upload($file['tmp_name'], $filepath)) { JError::raiseWarning(100, JText::_('Error. Unable to upload file')); return; }else{ $types = $filenameext[(int)$filenameextcount-1]; list($width, $height) = getimagesize($filepath); $thumb = JPath::clean(JPATH_ROOT.DS.'components/com_templateshow/upload/images/s_'.strtolower($outputfile)); if('gif' == $types ){ $gif = imagecreatefromgif($filepath); imagesavealpha($gif,true); $gifc = imagecreate(156, 145); imagealphablending($gifc,false); imagesavealpha($gifc,true); imagecopyresampled($gifc,$gif, 0, 0, 0, 0, 156, 145, $width, $height); imagegif($gifc,$thumb); } if( 'jpg' ==$types || 'jpeg' ==$types ){ $gif = imagecreatefromjpeg($filepath); $gifc = imagecreatetruecolor(156, 145); imagecopyresampled($gifc,$gif, 0, 0, 0, 0, 156, 145, $width, $height); imagejpeg($gifc,$thumb); } if( 'png' ==$types ){ $gif = imagecreatefrompng($filepath); imagesavealpha($gif,true); $gifc = imagecreatetruecolor(156, 145); imagealphablending($gifc,false); imagesavealpha($gifc,true); imagecopyresampled($gifc,$gif, 0, 0, 0, 0, 156, 145, $width, $height); imagepng($gifc,$thumb); } $row->template_full_image = strtolower($outputfile); //縮略圖文件賦值給字段 } 這上邊就是基本代碼,接下來小編說說基本的流程,就是把傳過來的圖片,首先取得擴(kuò)展名,然后記錄當(dāng)前的時(shí)間戳,當(dāng)作文件名字保存,上傳這張圖片,接著讀取這張圖片,對(duì)圖片只能處理jpg和png和gif三種格式,也是最常見的圖片格式,大家應(yīng)該知道jpg最好處理,一般不會(huì)出什么問題。但是gif圖片由于背景是透明的,如果設(shè)置不對(duì)就會(huì)出現(xiàn)背景變成黑色,還有png也存在這樣的問題,這里小編用的if語句,也可以用其他語句。圖片統(tǒng)一縮略大小156 X 146像素大小.這些數(shù)據(jù)都可以自己改的,小編這里是程序中部分代碼,有些地方可能不太嚴(yán)格,可能有bug,不過功能是實(shí)現(xiàn)的,處理方法當(dāng)然多種多樣,總的來說縮略圖處理不難,更簡(jiǎn)單的辦法是大家可以寫一個(gè)或者網(wǎng)上找一個(gè)不錯(cuò)的圖片處理類的程序,就可以實(shí)現(xiàn)上傳自動(dòng)生成縮略圖,水印等功能。在這里小編就不一一介紹了。 至于顯示圖片,只需要讀取數(shù)據(jù)庫圖片名稱,然后把地址連接上即可,由于縮略圖和原圖文件名有鏈接,小編是用原圖時(shí)間戳 1300000.jpg,那么縮略圖s_1300000.jpg,這也是常見處理縮略圖和原圖的辦法,時(shí)間戳可以保證圖片不會(huì)覆蓋。 希望可以幫助到各位站在朋友! 無憂主機(jī)相關(guān)文章推薦閱讀: JOOMLA網(wǎng)站程序首頁打開慢 如何刪除JOOMLA字體設(shè)置按鈕 JOOMLA網(wǎng)站文章網(wǎng)頁如何顯示EXCEL文檔 JOOMLA3.0官方下載:JOOMLA3.0與JOOMLA2.5之前的區(qū)別?
本文地址:http://www.love62.cn/joomla/15250.html
![1](/wp-content/themes/starow_z/img/o-1.png)
![1](/wp-content/themes/starow_z/img/o-2.png)
![1](/wp-content/themes/starow_z/img/o-3.png)
![1](/wp-content/themes/starow_z/img/o-4.png)
![1](/wp-content/themes/starow_z/img/o-5.png)
![1](/wp-content/themes/starow_z/img/o-6.png)
![1](/wp-content/themes/starow_z/img/o-7.png)