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三种格式,也是我们常见的格式,由于这三种图片的处理,在PHP 手册里面也详细记述.我们知道jpg最好处理,一般不会有啥问题,但是gif由于背景透明,设置不对就会出现背景黑色,还有png也存在这样的问题,这里我用的if,也可以用其他语句.这里图片统一缩略大小156 X 146像素大小.数据可以自己改,我这是程序中部分代码,有些地方可能不严格,可能有bug,不过功能是实现的,处理方法当然多种多样,总的来说缩略图处理不难,更简单的办法是你可以写一个或者网上找一个不错的图片处理类,就可以实现上传自动生成缩略图,水印等功能.在这里我就不实现了.

  至于显示图片,我们只需要读取数据库图片名称,然后把地址连接上即可,由于缩略图和原图文件名有链接,我是用原图时间戳 1300000.jpg,那么缩略图s_1300000.jpg,这也是常见处理缩略图和原图的办法,时间戳可以保证图片不会覆盖.

    以上是在joomla1.5版本中测试通过的,是一个项目部分代码,写的很烂,完全手写的,也没有找一些类,也是练习一下自己的php本身水平,技术比较差.最近学到的只是太多了,下次给你们说说joomla中如何实现ajax的get方式提交,实现模拟单选和复选,这里用的是我们常用的jquery库,并非其他ajax,我们javascript也不怎么样,主要是用jquery来写js代码.还有如何实现ajax搜索功能,这里的关键字通过空格隔开,使用到了多次查询连查,jquery检测,jquery插件from,以及正则在php应用.我的目的是,在学习joomla过程,学习php基本功以及jquery的开发,以及mysql数据库.有相同兴趣的朋友可以@我.

    老规矩,附上源码部分,仅供参考,不能使用:下载我http://files.cnblogs.com/logoove/com_templateshow.rar

  (本文原创 by Yoby)

转载于:https://www.cnblogs.com/logoove/archive/2012/05/30/2524964.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PhocaGallery组件是Joomla!下的图库组件,通过简单明了的界面,使用者能够轻松的将自己的照片公开于网站上与朋友分享。本组件内建多种图片呈现方式,且可与Picasa、Youtube等知名网站服务连接,在相同的界面下呈现外部网站内容。 Phocagallery组件特点: 1、多层次与无数量限制的分类建立方式。 2、多种呈现内容方式。 3、自动建立图片略图功能。 4、幻灯片(Slideshow)、分页(Pagination)、统计(Statistics)、评分(Rating) 等相册基本功能一应俱全。 5、具备水印(Watermark)功能,省去一一加入的繁琐动作,在制作略图时同时加入水印。 6、回复界面除可使用程序内建界面之外,也可使用JComments或Facebook。 7、支持Cooliris,能以3D图片墙的方式展示内容。 8、多种图片上方式(FTP, Java, Flash...等)。 9、具备前台上界面,自由上/删除/发布/取消发布图片项目。 10、能对图片的存取权做详细设定(显示/上/编辑/发布/取消发布等)。 11、使用MVC 模式:可以自定义Phoca模板主题。 12、图片旋转功能:适用于图片调整。 13、可另外安装专属于Phoca主题。 14、具备EXIF显示功能,让观赏者更容易了解图片拍摄时的设定。 15、支持地理定位(Geotagging)功能,拍摄位置一目了然。 16、支持Youtube影片,观看影片就像观看图片一样。 17、Picasa导入支持,将Picasa网络相册图片内容在Phoca中显示。 18、具备直接下载功能,让使用者能下载原始分辨率、无修整的图片。 19、能建立链接至VirtueMart商城。 20、搭配模块和插件,让phoca项目的应用更多元化。 来源:xingzai.org

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值