新闻中心

joomla手动实现后台上传和缩略图入库扩展实现方法分享

作者 / 无忧主机 时间 2014-07-29 15:33:24

小编发现我们无忧主机joomla的教程比较少,今天说说joomla的一个实用功能就是——如何扩展上传图片的同时生成缩略图,这样就不用在显示图的时候设置宽度高度,而且可以让页面加载很快,对于图片展示类型网站和模版类网站,小编认为大家都需要这样一个实用的功能的吧.在joomla1.5版本没有自带这个功能,其实这个功能是可以实现的,并且在上传的时候自动存入数据库.在数据库里面,用当前时间戳来保存图片名字,这样不会有重命名问题.如果大家想保存原名字,那么可以存入数据库。对于图片,只保存一张图片文件的名字,缩略图我们使用前缀_时间戳来保存,时间戳和大图是一样的.这样可以减少一个字段。好了原理就是这样。接下来小编就教大家如何实现这个功能: 对于上传来的图片,需要进行处理,小编得到的图像代码 代码如下: $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); //缩略图文件赋值给字段 } 这上边就是基本代码,接下来小编说说基本的流程,就是把传过来的图片,首先取得扩展名,然后记录当前的时间戳,当作文件名字保存,上传这张图片,接着读取这张图片,对图片只能处理jpg和png和gif三种格式,也是最常见的图片格式,大家应该知道jpg最好处理,一般不会出什么问题。但是gif图片由于背景是透明的,如果设置不对就会出现背景变成黑色,还有png也存在这样的问题,这里小编用的if语句,也可以用其他语句。图片统一缩略大小156 X 146像素大小.这些数据都可以自己改的,小编这里是程序中部分代码,有些地方可能不太严格,可能有bug,不过功能是实现的,处理方法当然多种多样,总的来说缩略图处理不难,更简单的办法是大家可以写一个或者网上找一个不错的图片处理类的程序,就可以实现上传自动生成缩略图,水印等功能。在这里小编就不一一介绍了。 至于显示图片,只需要读取数据库图片名称,然后把地址连接上即可,由于缩略图和原图文件名有链接,小编是用原图时间戳 1300000.jpg,那么缩略图s_1300000.jpg,这也是常见处理缩略图和原图的办法,时间戳可以保证图片不会覆盖。 希望可以帮助到各位站在朋友! 无忧主机相关文章推荐阅读: JOOMLA网站程序首页打开慢 如何删除JOOMLA字体设置按钮 JOOMLA网站文章网页如何显示EXCEL文档 JOOMLA3.0官方下载:JOOMLA3.0与JOOMLA2.5之前的区别?  

本文地址:https://www.51php.com/joomla/15250.html

1
1
1
1
1
1
1

客户服务热线

0791-8623-3537

在线客服