thinkphp下的圖片上傳

關於圖片上傳,實現方法不少,好比能夠用jQuery,固然,咱們的thinkPHP內置了關於圖片上傳的功能,咱們能夠直接使用,使用方法以下:php

首先,是表單書寫,咱們創建以下表單:html

[html] view plaincopy數據庫

  1. <form action="__URL__/addChk" method="post" enctype="multipart/form-data">  ide

  2.     <table cellspacing="1" cellpadding="2" width="99%" align="center" border="0">  函數

  3.         <tbody>  post

  4.             <tr>  測試

  5.             <th align="left" colspan="2" height="25">添加新遊戲</th>  網站

  6.             </tr>  this

  7.             <tr>  url

  8.             <td  width="17%" height="23">遊戲名稱</td>  

  9.             <td width="83%"><strong><input type="text" name="gamename" /></strong></td>  

  10.             </tr>  

  11.             <tr>  

  12.             <td  height="23">遊戲圖片</td>  

  13.             <td ><input type="file" name="gameimg"/></td>  

  14.             </tr>  

  15.             <tr>  

  16.             <td  width="17%" height="23">遊戲簡介<span></span></td>  

  17.             <td  width="83%"><textarea name="gameinfo" cols="30" rows="5"></textarea></td>  

  18.             </tr>  

  19.             <tr>  

  20.             <td height="23">遊戲地址:</td>  

  21.             <td>  

  22.             <input type="text" name="gamelink"/></td>  

  23.             </tr>  

  24.             <tr>  

  25.             <td height="23" colspan="2" ><input type="submit" value="添加" />      

  26.                 <input type="reset" value="從新填寫"/></td>  

  27.             </tr>  

  28.         </tbody>  

  29.         </table>  

  30. </form>  


這裏有個很是重要的地方,就是必定要在表單項目添加上enctype="multipart/form-data"這一點是很是重要的,由於這個是容許你上傳的類型的,若是沒有他,就不能上傳,關於enctype的其餘幾種類型,我會在之後的文章上說明。這裏咱們新建php文件AddAction.class.php,代碼以下;

[php] view plaincopy

  1. class AddAction extends Action{  

  2.     /** 

  3.     * 說明:ThinkPHP文件上傳測試函數 

  4.     * 做者:攀爬的蝸牛 

  5.     * 時間:2012-03-29 

  6.     * 版本:1.0 

  7.     * 網址:http://www.dutycode.com 

  8.     */  

  9.     public function addChk(){  

  10.             //導入圖片上傳類  

  11.             import("ORG.Net.UploadFile");  

  12.             //實例化上傳類  

  13.             $upload = new UploadFile();  

  14.             $upload->maxSize = 3145728;  

  15.             //設置文件上傳類型  

  16.             $upload->allowExts = array('jpg','gif','png','jpeg');  

  17.             //設置文件上傳位置  

  18.             $upload->savePath = "./Public/Uploads/";//這裏說明一下,因爲ThinkPHP是有入口文件的,因此這裏的./Public是指網站根目錄下的Public文件夾  

  19.             //設置文件上傳名(按照時間)  

  20.             $upload->saveRule = "time";  

  21.             if (!$upload->upload()){  

  22.                 $this->error($upload->getErrorMsg());  

  23.             }else{  

  24.                 //上傳成功,獲取上傳信息  

  25.                 $info = $upload->getUploadFileInfo();  

  26.             }  

  27.   

  28.             //保存表單數據,包括上傳的圖片  

  29.             $game = M("Game");  

  30.             $game->create();  

  31.             $savename = $info[0]['savename'];  

  32.             //$savepath = $info[0]['savepath'];  

  33.             //$aa = $savepath.$savename;  

  34.             //dump($aa);  

  35.             $imgurl = "http://demo.dutycode.com/Public/Uploads/".$savename;//這裏是設置文件的url注意使用.不是+  

  36.             //dump($imgurl);  

  37.             $data['gamename'] = $_POST['gamename'];  

  38.             $data['gameimg'] = $imgurl;  

  39.             $data['gameinfo'] = $_POST['gameinfo'];  

  40.             $data['gamelink'] = $_POST['gamelink'];  

  41.             $data['publishtime'] = date("Y-m-d H:i:s");  

  42.             $res = $game->add($data);//寫入數據庫   

  43.             if ($res){  

  44.                 $this->redirect("addGame","",2,"添加成功!兩秒後跳回");  

  45.             }else{  

  46.                 $this->redirect("addGame","",2,"失敗!兩秒後跳回");  

  47.             }  

  48. }  

相關文章
相關標籤/搜索