这篇文章主要介绍了yii实现图片上传及缩略图生成的方法,详细分析了图片的上传及缩略图的生成原理与实现方法,是非常实用的技巧,需要的朋友可以参考下

本文实例讲述了利用yii框架来实现图片上传功能并在上传成功之后自动生成缩略图的方法,分享给大家供大家参考。具体实现方法如下:

Action文件:

复制代码 代码如下:

/**

* TestController.php

* Created on: 2014-1-26 12:59:36 by Outsider

*/

class TestController extends CController {

/**

* 缩略图片生成

* @ path 图片路径

* @ width 图片宽度

* @ height 图片高度

*/

public function actionGetThumb($path, $w, $h) {

$file_name = md5($path . $w . $h);

if (file_exists('./temp/' . $file_name . '.jpg')) {

header('location:/temp/' . $file_name . '.jpg');

Yii::app()->end();

}

Yii::import("ext.EPhpThumb.EPhpThumb");

$thumb = new EPhpThumb();

$thumb->init();

$thumb->create('.' . $path)

->adaptiveResize($w, $h)

->save('./temp/' . $file_name . '.jpg')

->show();

}

/*

* 图片显示

*/

public function actionList() {

$attache = Attache::model();

$list = $attache->findAll();

$this->render('list', array('list' => $list));

die;

}

/**

* 文件上传

*/

public function actionIndex() {

$path = getcwd() . 'uploads';

$dir = DIRECTORY_SEPARATOR . date('Y') . DIRECTORY_SEPARATOR . date('m');

$dir = str_replace("\", "/", $dir);

$uploads_dir = str_replace("\", "/", $path . $dir);

if (!is_dir($uploads_dir) || !is_writeable($uploads_dir)) {

mkdir($uploads_dir, 0777, TRUE);

touch($uploads_dir . '/index.html');

}

$uploaded = false;

$model = new Upload();

if (isset($_POST['Upload'])) {

$model->attributes = $_POST['Upload'];

$file = CUploadedFile::getInstance($model, 'file');

$newName = substr(md5($file->extensionName . round((microtime(true) * 1000))), 0, 17) . '.' . $file->extensionName;

$file_name = $uploads_dir . '/' . $newName;

if ($model->validate()) {

$attache = new Attache();

$uploaded = $file->saveAs($file_name, TRUE);

$attache->name = $file->getName();

$attache->path = $dir . '/' . $newName;

$attache->create_time = time();

$attache->save();

}

}

$this->render('index', array(

'model' => $model,

'uploaded' => $uploaded,

'dir' => $uploads_dir,

));

}

}

Upload.php:

复制代码 代码如下:

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php yii把pdf转成图片,yii实现图片上传及缩略图生成的方法相关推荐

  1. 为什么PDF转成Word后是图片,怎么才能修改?

    众所周知,PDF文件是很难被直接修改,最多也就是局部性的修改,而且限制还颇多.因为我们通常会想到将PDF转成Word,再进行修改,现在有很多工具,确实也有很好的转换效果,如果PDF页面不是很复杂的话, ...

  2. pdfbox将多页pdf转成多张长图片

    (pdfbox将pdf转成图片(jpg或者png) 首先需要说明的几点事情 功能由来 引入jar包 下面贴上代码 关于产生2种报错信息的说明 写在最后 首先需要说明的几点事情 本文是基于pdfbox2 ...

  3. 在windows平台下php使用imagick库把pdf转换成(合并)图片

    在windows平台下php使用imagick库把pdf转换成(合并)图片 开发背景 上传的word文档需要转换成图片,在网上找了资料,主要是先转换成pdf: 1. 在windows下用com组件加上 ...

  4. 图片太大不能上传怎么办?

    图片太大不能上传怎么办?不管你是上班族还是学生,这几乎是每个人都遇到过的问题,很多网站为了防止自己的服务器存储空间不那么快被占用完,都会对上传的图片大小进行限制,操作大小限制的图片是不能被上传成功的. ...

  5. CSDN 转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(已有图床)

    前言 注意:本篇并非创建图床的问题 本人使用的图床是阿里云的 最近将本地的markdown文档上传到CSDN,所有的图片都会提示:源站可能有防盗链机制,建议将图片保存下来直接上传 但是直接把图片链接粘 ...

  6. 图片、音视频消息上传优化

    图片.音视频消息上传优化 通常图片.音视频等多媒体消息相对于文本消息会大很多,因此,多媒体消息在网络传输.实时触达等方面相需要有更多的优化.本文就针对如何使图片.视频.语音等多媒体消息发送得又快又稳进 ...

  7. 图片预览与图片通过预留接口上传

    提示:图片预览与图片通过预留接口上传的笔记 图片前端预览: 前提:通过input[type=file]让用户选择文件,通过事件对象.target.files拿到用户选择的"文件对象" ...

  8. Java中使用UUID给图片命名的文件上传方法

    场景 照片上传时给重命名时使用UUID进行重命名. 实现 在实现方法上传的方法中调用工具类的地方 Map<String, Object> result = ImageUtil.getIns ...

  9. pdf上传及预览;file上传pdf文件及预览;vue上传pdf文件及预览;vue-pdf预览pdf文件

    需求:上传pdf文件,并点击可以打开预览.使用input的file功能即可完成,预览只需要跳转到pdf的url地址即可.还可以配合vue-pdf直接预览,点击看这篇. 以下代码可直接复制使用!!!有效 ...

最新文章

  1. 实现JavaSrcipt页面的跳转
  2. 说说第二次配置Ubuntu14.04
  3. python基础版课件_python基础课件精编版.ppt
  4. const、volatile、mutable关键字
  5. 数字滤波器(二)--最小相位延时系统和全通系统
  6. 企业CIO都要知道的数据中台建设五步法,用友大神十二讲就搞定
  7. 常用数据分析的基本方法
  8. dvr服务器系统,DVR监控软件 V1.0
  9. CSS 幻术 | 抗锯齿
  10. 蓝牙AOA融合定位技术汇总
  11. 斯坦福大学java视频_iPhone应用开发视频教程-斯坦福大学公开课
  12. 在oracle中使用lpad函数生成唯一标识符ID
  13. 打印正六边形(C语言)
  14. MATLAB椎体怎么画,最适合小白的matlab教程系列,进阶,一
  15. JavaScript “佛祖保佑 永无bug”
  16. 简单的方法保存微信语音
  17. 【第98题】JAVA高级技术-网络编程17(简易聊天室12:实现客户端一对一聊天)
  18. 遇到不支持的 Oracle 数据类型 USERDEFINED。
  19. 游戏输入控制的五条黄金法则
  20. android 开发中遇到的错误 app:mergeDebugResources

热门文章

  1. 微信语音怎么转发给别人听_微信分付怎么邀请别人 微信分付如何才能被邀请开通...
  2. JS循环执行函数setInterval
  3. 十进制小数化为二进制小数的方法是什么_十进制转成二进制的两种方式
  4. 使用python开发网页游戏_不敢想!不敢想!我用Python自动玩转2048游戏
  5. 判断运营商_三大通信运营商步调一致,大流量互联网套餐陆续成绝版
  6. Linux设备树翻译计划
  7. 360剑灵洪门崛起服务器维护,剑灵洪门崛起————【维护】8月1日更新维护公告...
  8. winform定义数据源名称_winform ComboBox自定义数据源实现用户输入时出现与用户输入匹配的项...
  9. 【转】注册Azure AD 2.0 应用程序
  10. console对象的方法log、info、warn、error的区别及几个实用的方法