thinkphp實(shí)現(xiàn)UploadFile.class.php圖片上傳效能
Jun 13, 2016 pm 12:01 PM
thinkphp實(shí)現(xiàn)UploadFile.class.php圖片上傳功能
1.我們首先需要創(chuàng)建一個表
CREATE TABLE IF NOT EXISTS `tp_image` (
? `id` int(11) NOT NULL AUTO_INCREMENT,
? `image` varchar(200) NOT NULL,
? `create_time` int(11) NOT NULL,
? PRIMARY KEY (`id`)
) ENGINE=MyISAM? DEFAULT CHARSET=utf8;
2.然后再conf文件里添加配置(最后一段配置是可選的,只是為了方便統(tǒng)一管理URL路徑)
return array(
??????? 'URL_MODEL'??? =>??? 2, // 如果你的環(huán)境不支持PATHINFO 請?jiān)O(shè)置為3
??????? 'DB_TYPE'??? =>??? 'mysql',
??????? 'DB_HOST'??? =>??? 'localhost',
??????? 'DB_NAME'??? =>??? 'thinkphp',
??????? 'DB_USER'??? =>??? 'root',
??????? 'DB_PWD'??? =>??? '',
??????? 'DB_PORT'??? =>??? '3306',
??????? 'DB_PREFIX'??? =>??? 'tp_',
??????? 'SHOW_PAGE_TRACE' =>true,??????? //顯示頁面調(diào)試明細(xì)
??????? 'TMPL_PARSE_STRING' =>? array( // 地址替換,用_UPLOAD_目錄 代替 根目錄下的Upload目錄
???????? '__UPLOAD__'??? =>? __ROOT__.'/Uploads',
???? ),
);
?>
3.添加一個Image模塊(名字可以隨便取)
??? class ImageAction extends Action{????????
??????? /**
???????? * 創(chuàng)建index 入口方法
???????? */
??????? public function index(){
??????????? $image=M('Image');???????????????????????
??????????? $data=$image->order('create_time desc')->find();??? //獲取最后上傳圖片
??????????? $this->assign('data',$data);
??????????? $this->display();
??????? }?
?>
4.創(chuàng)建相應(yīng)index視圖文件(index.html)
???
???


???
5.選擇圖片,點(diǎn)擊上傳按鈕后,會跳到Image模塊的upload方法上,Image模塊上現(xiàn)在還沒有這個方法,于是我們創(chuàng)建它
??? class ImageAction extends Action{????????
??????? /**
???????? * 創(chuàng)建index 入口方法
???????? */
??????? public function index(){
??????????? $image=M('Image');????????????????????????
??????????? $data=$image->order('create_time desc')->find();??? //獲取最后上傳圖片
??????????? var_dump($data);
??????????? $this->assign('data',$data);
??????????? $this->display();
??????? }?
??????? //如果上傳的文件不為空,跳轉(zhuǎn)到_upload方法
??????? public function upload(){????????
??????????? //如果不為空
??????????? if(!empty($_FILES))
??????????? {
??????????????? $this->_upload();
??????????? }
??????? }
6.如果提交的不是NULL,則跳到_upload方法上,此方法實(shí)現(xiàn)圖片上傳的功能
??? class ImageAction extends Action{????????
??????? /**
???????? * 創(chuàng)建index 入口方法
???????? */
??????? public function index(){
??????????? $image=M('Image');????????????????????????
??????????? $data=$image->order('create_time desc')->find();??? //獲取最后上傳圖片
??????????? var_dump($data);
??????????? $this->assign('data',$data);
??????????? $this->display();
??????? }?
????????
??????? //如果上傳的文件不為空,跳轉(zhuǎn)到_upload方法
??????? public function upload(){????????
??????????? //如果不為空
??????????? if(!empty($_FILES))
??????????? {
??????????????? $this->_upload();
??????????? }
??????? }
????????
??????? /***
???????? * 實(shí)現(xiàn)圖片上傳
???????? */
??????? public function _upload(){
??????????? import('@.ORG.UploadFile');
??????????? //導(dǎo)入上傳類
??????????? $upload = new UploadFile();
??????????? //設(shè)置上傳文件大小
??????????? $upload->maxSize??????????? = 3292200;
??????????? //設(shè)置上傳文件類型
??????????? $upload->allowExts????????? = explode(',', 'jpg,gif,png,jpeg');
??????????? //設(shè)置附件上傳目錄
??????????? $upload->savePath?????????? = './Uploads/';
??????????? //設(shè)置需要生成縮略圖,僅對圖像文件有效
??????????? $upload->thumb????????????? = true;
??????????? // 設(shè)置引用圖片類庫包路徑
??????????? $upload->imageClassPath???? = '@.ORG.Image';
??????????? //設(shè)置需要生成縮略圖的文件后綴
??????????? $upload->thumbPrefix??????? = 'm_,s_';? //生產(chǎn)2張縮略圖
??????????? //設(shè)置縮略圖最大寬度
??????????? $upload->thumbMaxWidth????? = '400,100';
??????????? //設(shè)置縮略圖最大高度
??????????? $upload->thumbMaxHeight???? = '400,100';
??????????? //設(shè)置上傳文件規(guī)則
??????????? $upload->saveRule?????????? = 'uniqid';
??????????? //刪除原圖
??????????? $upload->thumbRemoveOrigin? = true;
????????????
??????????? //如果上傳不成功
??????????? if (!$upload->upload())?
??????????? {
??????????????? //捕獲上傳異常
??????????????? $this->error($upload->getErrorMsg());
??????????? }?
??????????? else?
??????????? {
??????????????? //取得成功上傳的文件信息
??????????????? $uploadList = $upload->getUploadFileInfo();
????????????????
??????????????? //導(dǎo)入圖片類
??????????????? import('@.ORG.Image');????????????????
??????????????? //給m_縮略圖添加水印, Image::water('原文件路徑','水印圖片地址')
??????????????? Image::water($uploadList[0]['savepath'] . 'm_' . $uploadList[0]['savename'], APP_PATH.'Tpl/Public/Images/logo.png');
??????????????? //圖片名賦值給 字段image
??????????????? $_POST['image'] = $uploadList[0]['savename'];
??????????? }
??????????? $model? = M('image');
??????????? //保存當(dāng)前數(shù)據(jù)對象
??????????? $data['image']????????? = $_POST['image'];
??????????? $data['create_time']??? = NOW_TIME;
??????????? $list?? = $model->add($data);
??????????? if ($list !== false)?
??????????? {
??????????????? $this->success('上傳圖片成功!');
??????????? }?
??????????? else?
??????????? {
??????????????? $this->error('上傳圖片失敗!');
??????????? }
??????? }????????
??? }
?>
上傳成功生成兩張縮略圖
需要說明的是:
ThinkPHP里自帶的圖片上傳類(UploadFile.class.php) 和圖片模型類(Image.class.php),要完整版的ThinkPHP包才有。
沒有的話需要在Lib里創(chuàng)建一個文件夾(ORG),然后去官網(wǎng)下載擴(kuò)展包把這兩個文件放到ORG文件夾中。
我的是第二種情況

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

??? ??











??? ??? "??? ???? PIN ??? ?????"?? ???? ?????. ?? ?? ??? ??? ? ?? ?? ?? ?? ??? ???? ????? PIN ?? ??? ??? ?? ?????. ??? ?? ??? ???? Windows? ???? ?? ?????? ?? ???? ???? ????. ?? ?? ?? ????. ??? ??? ???? ???? ?? ??? ???? ?????. ???? Windows 11?? PIN? ????? ???? ??? ?????? ??? ??? ??? ???? ?? ? ???? ?? ???? ?? ?? ?? ?????. ??? ????? ???? ??? ? ? ????! ?? ?? ??? ?? ?? ???? ??? ????? ?? ?? ??? ??? ? ????. ?? ??

Windows 11? ???? ??? ???? ??? ??????. ???? ?????? ?? ? ???? ?? ??? ?? ??? ????? ??? ? ????. ? ?????? Windows ?? ???? ??? ???? ???? ??? ??? ? ??? ?? ??? ??? ?????. ? ??? ??? ???? ??? ?????? +? ?? ?? ?? ???. Windows?? ???? ???? ?? ??? ?????. ?? ?? ? ??? ?? ? 11" Width="643" Height="500" > ?? ??? ? ? ???? ?? ?? ?? ??? ?? ?? ?? ???? ?????. ?? ?? ? ?? ???? ?? ??? ????? ?? ??? ?? ???? ?? ??? ????? ?? ??? ?? ???? ?? ??? ???.

????? Windows 11? ?? ??? ??? ??? ???/?? ??? ?? ????. ??? ??? ???? ??? ? ????. ? ?????? ?? ???? ???? ??? ????? ????? ????? ??? ? ?? ??? ?? ??? ??? ?????. ?? ?? ??? ?? ?? ??? ??? ??? ? ????? ?, ?? ?? ???? ?? ?? ?? ??? ??? ????? ????? ???? ???? ??? ?? ?? ??? ??? ??? ? ????. ??? ??? ????? ?? ???? ?????. Windows 11?? ?? ??? ??? ???? ??? ?????? 1. ?? ?? ???? +? ?? ?? ?? ???. Windows"?? ??"?? ??? ??

?? ??? ???? ???? ?? ??? ??? ???? ??? ???? ? ?? ????. ? ?? ?? ??? ?? ???? ????? ???? ??? ??? ?? ? ? ??? ?? ????. ? ?? ??? ? ?? ??? ???? ????? ????. ??? ??? ???? ?? ? ?? ??? ?? ??? ?????? ??? ????????. ??? ???? ??? ?? ??? ? ?? ?? ??? ??? ?? ???? ? ????. Windows 11?? ?? ??? ??? ?? ??? ????? ??? ?????? 1. ?? ?? ???? ?? ??? ??? ?????. Windows??? ???? ???? ??? ?????. ?? ??? ??? ?????. ?? ??? ???? ?? ???? ??? ?????. "?? ??"? ?????.

Windows Installer ???? "OOBELANGUAGE" ?? ?? "??? ??????."? ?????? ??? ??? ?? Windows ??? ???? ??? ????. OOBE? ?? ?? ??? ??? ?????. ?? ????? ? ? ??? ?? OOBE ?? ??? ??? ?????. ??? ??? ????. OOBE ?? ???? ?????? ???? ? ??? ??? ? ????. ?? ?? – 1. OOBE ? ??? ?? “?? ??” ??? ?????. ??? ? ??? ?? ?? ????? ?????. 2. ?? ??? ???? ???? ?? ?????. ???? ?? ??? ? OOBE? ????? ???. 3. ????? ??? ??? ????. ???? ???? OOBE? ?? ??? ?????.

Windows 11? ????? ?? ??? ???? ?? ??? ?? ?? ???? ??? ????. ? ???? ???? ??? ??, ?? ???? ???? ??? ????. ??? ??? ?? ??? ????? ??? ??? ?????. ??? ?? ?? ???? ???? ??? ?? ??? ?? ? ???? ???? ? ???? ??? ??? ??? ????? ?? ??? ???? ??? ??? ???. Custom Zoom? ??: ??? ???? ?? ??? ????? ??? ?????. ? ?? ???? ? ?? ?? ? ? ??? ?????. ?? ??? ? ?? ?????? ???? ??? ?? ?? ???? ??? ? ????. ??? ????? ??? ????? ? ??? ? ? ????. ?? ?? ??? ??? ? ????? ??? ? ????. ??? 11? ???? ??

?? ??? ?? ??? ??? ??? ? ???? ????, ?? ??? ??? ? ? ?? ?????. ?? ??? ???, ???? ???, ???? ?? ????? ?? ? ??? ???. ??? ??? ?? ?? ??? ??? ? ???, ?? ??? UI ??? ??? Windows 11??? ?? ?????. ??? ???? ? ??? ?? ?? Windows 11?? ??? ???? ?? ??? ??? ????. Windows 11?? ??? ???? ?? [10?? ??] ?? ??? ???? ?? ??? ???? Windows 11?? ??? ??? ? ????. ???? ?? ???? ???? ???? ???? ???? ?????. ????. ?? 1: ?? ?? ?? ?? ??? ???? ? ????.

Windows? ?? ?? ?????? ??? ? ?? ?? 0xc004f069? ??? ?? ???? ???? ??? ????. ??? ????? ????? ?????? Windows Server? ???? ?? ?? ????? ? ??? ??? ? ????. ??? ?? ??? ???? ??? ???? ??? ?? ??? ?? ?? ???? ???? ??? ??????. ?? ?? - ?? ???? ??? ?? ????. ?? ?? ???? ?? ??????. Windows ?? ?? ????? ???? ?? ?????. ?? 1 – ????? ??? cmd ????? Windows Server Edition ???? ??????. 1?? – Windows Server ?? ?? ?? ???? ?? W ??? ???? ???.
