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

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

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.Unabletouploadfile'));
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,还可以用别的句子.这儿图片统一缩略尺寸156X146像素大小.数据信息能够自身改,我它是程序流程中一部分编码,一些地区很有可能不严苛,很有可能有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数据库查询.有同样兴趣爱好的盆友能够@我.

规矩,另附源代码一部分,仅作参考,不可以应用:下载我/201205/yuanma/com_templateshow.rar

(文中原創byYoby)

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/772004.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-03

发表评论

登录后才能评论

评论列表(0条)

保存