PHPCMS实现上传图片同时自动生成不同大小的缩略图

解决方案:

①在模型添加字段里面添加三个图片字段,分别是thumb(这个字段貌似默认就有,有就不用添加),thumb2,thumb3,第一个字段thumb设置图片宽高160*160,其他字段填不填都无所谓。

②在content模块的content控制器的add方法(modules/content/content.php)添加如下代码:

 代码如下 复制代码

//手机游戏平台站点上传缩略图,自动生成75X75,48X48的缩略图
$siteid=$this->siteid;//获取当前站点siteid
if ($siteid==3) {
 $rawpic=isset($_POST['info']['thumb'])?$_POST['info']['thumb']:'';
 //如果上传了第一张缩略图
 if ($rawpic) {
  $new75_75=thumb($rawpic,75,75);
  $new48_48=thumb($rawpic,48,48);
 }
 $_POST['info']['thumb2']=$new75_75;
 $_POST['info']['thumb3']=$new48_48;
}

因为PHPCMS的全局函数global.func.php包含了缩略图函数,因此上面的代码我们可以直接使用这个thumb函数:

 代码如下 复制代码

function thumb($imgurl, $width = 100, $height = 100 ,$autocut = 1, $smallpic = 'nopic.gif') {
 global $image;
 $upload_url = pc_base::load_config('system','upload_url');
 $upload_path = pc_base::load_config('system','upload_path');
 if(empty($imgurl)) return IMG_PATH.$smallpic;
 $imgurl_replace= str_replace($upload_url, '', $imgurl);
 if(!extension_loaded('gd') || strpos($imgurl_replace, '://')) return $imgurl;
 if(!file_exists($upload_path.$imgurl_replace)) return IMG_PATH.$smallpic;
 
 list($width_t, $height_t, $type, $attr) = getimagesize($upload_path.$imgurl_replace);
 if($width>=$width_t || $height>=$height_t) return $imgurl;
 www.111cn.net
 $newimgurl = dirname($imgurl_replace).'/thumb_'.$width.'_'.$height.'_'.basename($imgurl_replace);
 
 if(file_exists($upload_path.$newimgurl)) return $upload_url.$newimgurl;
 
 if(!is_object($image)) {
  pc_base::load_sys_class('image','','0');
  $image = new image(1,0);
 }
 return $image->thumb($upload_path.$imgurl_replace, $upload_path.$newimgurl, $width, $height, '', $autocut) ? $upload_url.$newimgurl : $imgurl;
}

这样就把生成的75*75和48*48的两张图片的路径存入了数据库表中对应的字段。同理在edit方法里复制这段代码。

③另外,为了在添加内容的时候方便,不显示thumb2和thumb3的上传缩略图的标签,因为它是函数自动生成的,而且也无需编辑手动上传,因此把它给隐藏掉比较好。在content控制器对应的模板content_add.tpl.php和content_edit.tpl.php的底部,有一段jquery包含的代码中添加:

 代码如下 复制代码

/*
 * 手机平台站点隐藏缩略图2和缩略图3
 */

$("#thumb2,#thumb3").parent().hide();
$("#thumb2,#thumb3").parent().prev().hide();

这样发布文章的编辑器就隐藏其他两个缩略图字段了。

时间: 2024-10-02 03:47:25

PHPCMS实现上传图片同时自动生成不同大小的缩略图的相关文章

WordPress上传图片禁止自动生成缩略图

用管理账号登陆后台,找到设置→媒体,将媒体选项里面的图片大小下面的三个尺寸选项全部修改为0,然后保存就可以了. 需要关闭缩略图功能在"后台设置(Setting)--媒体(Miscellaneous)"里将缩略图尺寸全部设置为0像素就可以禁止缩略图的生成了.

PHP生成自适应大小的缩略图类及使用方法分享_php实例

把下面的代码直接复制,新建一个文件叫做 thumbnailimage.php  ,文件名最好不要用大写,把以下代码复制进去: 复制代码 代码如下: <?php define ( 'MAX_IMG_SIZE', 100000 ); // Supported image typesdefine ( 'THUMB_JPEG', 'image/jpeg' );define ( 'THUMB_PNG', 'image/png' );define ( 'THUMB_GIF', 'image/gif' );

使用Sass Mixins自动生成Icons Sprite

文章简介:Sass Mixins--支持Retina的Icons Sprite. Retina雪碧图标--在你的网站上前端人员可以很容易使用Sass Mixins自动生成.不过你需要在项目中安装Sass和Compass才能正常使用. 根据设置步骤你可以设置你自己的Compass.如果你想实现自动化和完全控制你自己的开发资源,我强烈建议您阅读后面的"扩展细节". 容易整合 让我们先从一个非常简单的例子来发解如何使用它.如果你已经下载了包,你会发现一个food-icons.css文件在你的

看实例学VFP:向数据表中添加记录时自动生成编号

本例在"看实例学VFP:向数据表中添加记录并验证输入数据是否合法"的基础上进行了改进,实现了在添加记录时不仅能够完成对输入数据的校验,还具有自动生成编号的功能.自动生成编号的相关代码加在表单的init事件及"添加"按钮的click中,在表单第一次启动或添加完记录后都会调用此段代码,实现自动生成编号的功能.运行界面如下: 本例用到了"数据1"数据库中的"网站信息表",关于该数据库的情况已经在看实例学VFP:示例数据库一文中给出,

如何将Word自动生成的目录的页码打印成统一格式

我把正文的页码设置成 -1- 的格式了,然后设置好大纲级别后,就自动生成目录.目录里显示的也是---------1-的格式.好,我就选中页码-1-,把它设置成1的格式了.然后再打印,结果打印的结果还是-1-的格式,而且点打印预览也还是-1-的格式.我看了一下,目录------后面的页码的格式都是和--------之前的字的格式一样的.我想把目录的字体和大小设成不同的,但是页码就跟着不同了,很不美观. PS:以上这些问题在设置的时候都可以解决,但是设置好了之后,打印的时候就会回到设置前的状态了,怎

写毕业论文的注意了:怎样自动生成目录及从任意页开

微软WORD这个软件大家都很熟悉,但有不少功能我们并没有用到,其中不乏非常实用的.今儿个我给大家介绍一下如何用WORD自动生成目录.这对那些用WORD写书,写论文的朋友很有帮助. 优点:用 WORD根据文章的章节自动生成目录不但快捷,而且阅读查找内容时也很方便,只是按住Ctrl点击目录中的某一章节就会直接跳转到该页,更重要的是便于今 后修改,因为写完的文章难免多次修改,增加或删减内容.倘若用手工给目录标页,中间内容一改,后面页码全要改是一件很让人头痛的事情.应该自动生成的目 录,你可以任意修改文

Word2007目录怎么自动生成

  Word2007目录怎么自动生成         操作步骤: 1.菜单栏中[开始]--[样式] 2.在[样式]中,主要就是用到标题 1,标题 2,标题 3.把标题 1,标题 2,标题 3 分别应用 到文中各个章节的标题上.例如:文中的"摘要"我们就需要用标题 1 定义.而"(一)和谐劳动关系应当是合同型的."就用标题 2 定义.如果有 1.1.1×××那就用标题 3 来定义. 3.当然标题 1,标题 2,标题 3 的属性(如字体大小,居中,加粗,等等)可以自行修

WPS自动生成目录的图文步骤

  很多在准备论文的网友,最头痛的除了论文的撰写之外,还有就是论文目录的编写.有时候论文内容再精彩,也可能因为论文目录编写得不好,被论文辅导老师退回来.那么,怎么生成论文目录呢?今天小编就为大家分享一下WPS自动生成目录的步骤,整个步骤还是有一定难度的,请大家仔细按照下面的步骤操作哦! 打开WPS文字,新建文档. WPS自动生成目录的步骤 在文档里面新建一级标题. 标题内容如下: 一.概论 输入完一级标题后,选中文字,在样式中点击"标题1",会变成如下样式. 后面输概论内容,此处概论为

Word2003中怎样设置自动生成目录

微软WORD这个软件大家都很熟悉,但有不少功能我们并没有用到,其中不乏非常实用的.今儿个我给大家介绍一下如何用WORD自动生成目录.这对那些用WORD写书,写论文的朋友很有帮助. 优点:用WORD根据文章的章节自动生成目录不但快捷,而且阅读查找内容时也很方便,只是按住Ctrl点击目录中的某一章节就会直接跳转到该页,更重要的是便于今后修改,因为写完的文章难免多次修改,增加或删减内容.倘若用手工给目录标页,中间内容一改,后面页码全要改是一件很让人头痛的事情.应该自动生成的目录,你可以任意修改文章内容