php yii把pdf轉成圖片,yii實現圖片上傳及縮略圖生成的方法

這篇文章主要介紹了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中文網,轉載請注明出處,感謝您的尊重!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/443044.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/443044.shtml
英文地址,請注明出處:http://en.pswp.cn/news/443044.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux下的安裝命令行工具下載,linux系統程序安裝(二)yum工具2-yum源及包下載

繼續我們的yum工具應用之旅,yum工具之所以方便就是因為有方便的在線云庫,實際工作中我們可能沒辦法鏈接互聯網,或者我們想安裝的程序原生源那么我們能不能用其他方式應用方便的yum源呢?一、使用光盤作為yum源1、將光盤掛載到/mnt目…

linux顯卡內核修改,iTOP-4412開發板-驅動-linux顯卡驅動的修改方法

本文檔介紹迅為4412開發板的顯卡分辨率修改方法。iTOP-4412 開發板支持 4.3 寸、7 寸和 9.7 寸等 lcd 顯示屏。其中 4.3 寸屏是用的 cpu直接出來的 RGB 信號,7 寸屏和 9.7 寸屏是用的 LVDS 信號,硬件上使用了一個 RGB 轉LVDS 的芯片實現的。我們來看下顯…

linux-如何限制普通用戶的磁盤使用空間-磁盤配額quota,Linux系統下如何進行磁盤配額Quota的設置...

Linux如何進行磁盤配額quota的設置通過quota進行磁盤配額,可以控制用戶對磁盤空間和文件的控制,我們以一個實例作為說明,對2個用戶user01、user02分別進行磁盤使用空間和創建文件的限制。首先,創建一個新的分區&#x…

linux一臺機器如何安裝兩個mysql,在一臺linux機器上啟動兩個mysql實例

環境:linux主機上已經yum安裝了mysql,而且數據庫正在運行。在不關閉/重啟mysql的情況下,重新啟動一個新的mysql實例,使用3307端口,實現一臺機器上同時運行兩個數據庫實例。1、創建新的mysql實例數據存儲目錄&#xff1…

linux和windows啟動,Linux和Windows雙系統的啟動

問題Linux和Windows雙系統的啟動解決方案在某些特殊情況下,服務器可能要安裝雙系統一個linux系統,一個windows系統這種情況下,安裝順序是,先裝Windows系統,后裝Linux這是因為,Linux的引導程序grub具備多系統…

體積最小桌面linux,Tiny Core Linux - 體積最小的精簡 Linux 操作系統發行版之一 (僅10多MB)...

Tiny Core Linux (TCL) 是一款極體積極小且高度可擴展的微型 Linux 發行版,它將一個 Linux 操作系統精簡到僅有 10 多 MB 左右的大小,似乎小巧得有點讓人嘆為觀止!要知道無論是常見的 Ubuntu、CentOS、Debian 的體積動輒就是幾百MB甚至要上GB…

linux下緩存命中測試,Linux 性能優化實戰(倪朋飛)---查看緩存命中情況

cachestat 提供了整個操作系統緩存的讀寫命中情況。cachetop 提供了每個進程的緩存命中情況。但是,cachetop 并不把直接 I/O 算進來。安裝 cachestat、cachetop:$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4052245BD4284CDD$ ech…

linux suid提權原理,Linux SUID、SGID、sticky提權

S UID SGID SOID 核心就在 “S” ,S就是允許本圈子 用戶有r,w,x ;例如:1、chmod sg test.txt 只允許testex.txt所在的組 員可以執行r,w,x2、chmod us test.txt2 只允許test.txt2的屬主 執行r,w,x溫馨提示:對SUID只需要有個了解就行了&#xf…

linux新建samba賬戶,ubuntu上創建賬戶和samba用戶

系統環境:Linux ubuntu152 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 x86_64 x86_64x86_64 GNU/Linux系統用戶登錄創建linux賬戶:1. sudo adduser username --home /home/username執行該命令后需要兩次輸入賬戶密碼,連續回車&…

linux xorg.0.log,Red Hat無法登錄,Cannot open log file /var/log/Xorg.0.log

命令截面輸入ROOT帳號無效,幾秒后彈出報錯頁面I cannot start the X server (your graphical interface ) It is likely it is not setup correctlyWould you like to view the X server output diagrose the problem?然后按YES后跳出Fatal server error:Cannot o…

c程序語言習題解答對編程有幫助嗎,給C語言編程初學者的10個學習建議,助你學習事半功倍,不要錯過...

對于初學者應該如何學習C語言編程開發技術,縱觀中國目前整體行業來說,互聯網IT行業 成為了拔尖的行業,IT互聯網程序開發成了靠自己能力可以多掙一點錢,所以各個行業都在轉行,其實互聯網不存在飽和,只不過大…

跟世界打個招呼c語言編程,(一)helloworld

Idea下用SBT搭建Spark Helloworld沒用過IDEA工具,聽說跟Eclipse差不多,sbt在Idea其實就等于maven在Eclipse.Spark運行在JVM中,所以要在Idea下運行spark,就先要安裝JDK 1.8 然后加入S ...菜鳥學Struts2——HelloWorld寫在前面 自從工作后就過上了只有一個月記憶的生活,太健忘,很…

求一份100行左右的C語言程序,求4個C語言程序 每個100行左右 大一水平的

2008-06-30 回答//鏈表問題//電話薄實現:可以輸入,輸出,插入,刪除聯系人信息.#include#include#includetypedef struct student{char address[20];char name[20];char mail[7];;char phone[10];struct student *next;}LNode;void creat_list( LNode **h ) //請輸入聯系人信息{L…

c語言INT16與int,C中int,Uint,uint16等有什么區別以及用處

在C中,既然有了int,為什么還要有uint?特別是uint16,uint32等又有什么用?他們有什么區別?”----------------------------------------------------------------------------------------------------------…

指針使用c語言,指針的使用(C語言)

/*例8.1 通過指針變量訪問整型變量*//*#include的作用是提供相關的信息(當在使用標準)*//*stdio.h:是C編譯系統提供的一個文件名*//*只需要記住:在程序中用到系統提供的標準函數庫中的輸入輸出函數時,需要在程序開頭寫上#include這一行*/#inc…

在c語言中優先級最低的是6,C語言中?*,<<,=?,->哪個優先級最低

滿意答案nishiwodezmx推薦于 2016.03.13采納率:46% 等級:12已幫助:6812人最高的是->(指向運算符)再到*再到>>(右移運算符)再到(賦值運算符)c語言運算符號:1級優先級 左結合() 圓括號[] 下標運算符-> 指向結構體成員運算符. 結…

隊列的順序數組c語言代碼,隊列-隊列的順序表示和實現

隊列-隊列的順序表示和實現和順序棧相類似,在利用順序分配存儲結構實現隊列時,除了用一維數組描述隊列中數據元素的存儲區域之外,尚需設立兩個指針front和rear分別指示“隊頭”和“隊尾”的位置。為了在C語言中描述方便,在此我們約…

android代碼打開數據庫,Android打開和關閉數據庫

與計算機編程中的許多事情一樣,關閉SQLite數據庫的時間沒有單一的“正確進行”(如果您正在使用它,則通過SQLiteOpenHelper上的close(),否則對SQLiteDatabase執行close()).一個相當硬的規則是不要同時跨多個線程為同一個數據庫使用多個SQLiteDatabase對象.這可能會讓你遇到麻煩,…

android 鏈接分享到朋友圈,android 分享到微信朋友圈或微信好友

一、首先創建一個數字簽名(keystore文件)這里不再講述keystore的創建過程!二、用keystore給app簽名,注意最后如下圖所示圖中的md5就是 申請apkid時所需的 簽名,這里需要注意MD5需要將其中的“:”去掉并將其中的大寫字母改為小寫三…

android studio開源代碼,Android Studio Set of source 代碼源集

一、源集1、定義:Android Studio 按邏輯關系將每個模塊的源代碼和資源進行分組,這個分組叫做源集。2、main Module 源集包括其所有構建變體共用的代碼和資源。這句話很關鍵,意思是,所有的其他構建變體,src/main是其共同…