gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網
最全最豐富的資訊網站

詳解ThinkPHP怎么實現圖片上傳

下面由thinkphp框架教程欄目給大家介紹ThinkPHP怎么實現圖片上傳功能,希望對需要的朋友有所幫助!

直接上個例子,其中包括有單圖片文件上傳、多圖片文件上傳、以及刪除文件的一些操作、放置刪除數據庫的時候,僅僅刪除掉了數據庫之中的文件路徑、而不是一并刪除服務器之中的文件、放置服務器爆炸…

TP里面common文件夾里面function.php里面自定義方法:

<?php //文件上傳類(可以設置多個參數) function upload($file=null,$maxSize=0,$exts=0,$savePath='') {   //調用   $upload = new ThinkUpload();// 實例化上傳類   $upload->maxSize  = $maxSize;// 設置附件上傳大小   $upload->exts   = $exts; //array('jpg', 'gif', 'png', 'jpeg'); 設置附件上傳類型   $upload->savePath = $savePath; // 設置附件上傳目錄   // 上傳文件   //如果單個文件還是多個文件   if($file){    $info = $upload->uploadOne($file);   }else{   $info = $upload->upload();   }   //判定是否文件上傳成功de   if(!$info) {     return false;   }else{   // 上傳成功,     return $info;   } } //上傳圖片 function fab_upload($files ,$maxSize = 0,$exts = null,$savePath = '') {   //判定文件信息是否為空   if(empty($files)){     return false;   }   if($exts === null){     $exts = array('jpg', 'gif', 'png', 'jpeg');   }else{     $exts = 0;   }   $tmp = array();   //將文件信息(數組)用foreach循環遍歷,   foreach($files as $k => $v){   //判定文件大于0之后,將遍歷value作為參數傳入upload方法     if($v['size'] > 0){       $res = upload($v,$maxSize,$exts,$savePath);       //如果傳入成功就會將文件存儲路徑傳入數組$tmp[]之中       if($res){         $tmp[$k] = $res['savepath'].$res['savename'];       }     }   }   //將存儲傳入文件路徑的數組return回去   return $tmp; } ?>

其實無論哪個文件上傳、都是需要用$_FILES變量區操控的、

上面的方法是fab_upload調用upload方法的;

在HTML上我們表單是醬紫寫的:

<form action="{:U('Index/infoupload')}" method="post"style="overflow: hidden;clear: both;" enctype="multipart/form-data"> <p class="contact_r col-md-4">   <label class="contact_rc contact_file"><span><b>入臺證:</b><input class="inp_zj1" type="file" name="rutaiimg" ></span></label>   <!-- <a class="contact_sp fancybox" href="images/txz1.jpg" rel="external nofollow" rel="external nofollow" >如圖示</a> --> </p> <p class="contact_r col-md-4">   <label class="contact_rc contact_file"><span><b>通行證:</b><input class="inp_zj2" type="file" name="tongxingimg" ></span></label>   <!-- <a class="contact_sp fancybox" href="images/txz1.jpg" rel="external nofollow" rel="external nofollow" >如圖示</a> --> </p> </form>

控制器之中如何處理上傳的文件(拼接路徑以及文件名、還有入庫失敗需要刪除文件,類似回調)

/*調用寫好的方法進行驗證*/ $new_thumb = fab_upload($_FILES); // var_dump($new_thumb);die; $input['data']['addtime']=time();//生成申請時間 $input['data']['pretime']=strtotime($input['data']['pretime']);//將傳過來的日期轉換成時間戳 if($new_thumb && count($new_thumb) > 0){     $input['data'] = array_merge($input['data'],$new_thumb); } $f = $customer->add($input['data']); if($f){     $this->display('Index/infosuccess');     // $this->success("添加成功!",U('Index/infocheck',array('iccid'=>$input['data']['iccid']))); }else{//數據添加失敗即刪除照片     if($new_thumb){       $p = C('UNLINK_PATH').$new_thumb;       unlink($p);     }     $this->error("添加失敗!證件可能已存在"); }

其中UNLINK_PATH變量在ThinkPHP之中的config文件里面定義、是路徑來的

<?php return array(   'DB_TYPE'  => 'mysql', // 數據庫類型   'DB_HOST'  => 'localhost', // 服務器地址   'DB_NAME'  => 'urban', // 數據庫名   'DB_USER'  => 'root', // 用戶名   'DB_PWD'  => '123456', // 密碼   'DB_PORT'  => 3306, // 端口   'DB_PREFIX' => 'fab_', // 數據庫表前綴   'DB_CHARSET'=> 'utf8', // 字符集   'CHECK_ROOT' => true, //開啟rbac權限   'TMPL_CACHE_ON' => false,    // 是否開啟模板編譯緩存,設為false則每次都會重新編譯   'ACTION_CACHE_ON' => false, // 默認關閉Action 緩存   'HTML_CACHE_ON'  => false,  // 默認關閉靜態緩存   'FILE_PATH'=>'http://localhost/urban/Uploads/',   'WEB_PATH'  =>  'http://localhost/urban/index.php/',   'WEB_URL'  =>  'http://localhost/urban/',   'UNLINK_PATH'  =>  './Uploads/',   'PWD_KEY'  => 'jeiskAsdlLsdfqaiocvwphxzbtu',   'AUTO_LOGIN_TIME'=>3600 * 24 * 7,   'SHOW_PAGE_TRACE'=>true, //追蹤模式   'MY_CATCH_DIR' =>'./cache/', //緩存目錄   'CODE_PATH' =>'http://localhost/urban/fabp/phpqrcode/',  // 存放二維碼的目錄   'qq_face' =>'http://localhost/urban/Public/site/images/arclist/',   //qq表情路徑   'wxlogin' => array(     'appid' => 'wx35f5b9e9b90539ae',     'AppSecret' => '4de424bee1529a8abeda9c0c52aad3aa',     'callback' => 'http://localhost/urban/index.php/Home/Login/call_back.html'     ),   'topic_pass'=>false,  //是否開啟話題審核 );

當添加以后,自然需要在后臺管理模塊上添加刪除的function

上面的顯示圖片的時候,用HTTP協議的絕對路徑拼接出來顯示圖片;

而刪除圖片則是,以入口文件index.php為準,是當前文件夾下面的upload文件夾;

記住調用ThinkPHP之中的upload、uploadone方法返回來的只是上傳文件在upload文件夾下面的存儲位置、“'2016-09-02/57c94e71f0916.png'”(入庫也這個吧)

所以無論刪除還是顯示都需要用C方法拼接一下

if(IS_POST){     $input=I('post.');     $ids=implode(',',$input['id']);     $brand=D('brand');     $img=$brand->where("brand_id in ($ids)")->getField('thumb',true);     foreach($img as $v){       $p = C('UNLINK_PATH').$v;       unlink($p);     }     $res=$brand->where("brand_id in ($ids)")->delete();     if($res){       $this->success("刪除運營商品牌成功!");     }else{       $this->error("刪除運營商品牌失敗!");     } }

之所以用了那個foreach;是因為傳過來的id不是唯一一個;是多選,刪除;

多選,并且傳過去相應欄目ID的值是如何實現的呢

<foreach name="list" item="v">   <tr>     <td class="center" width="80px">       <label>         <input type="checkbox" class="ace" name="id[]" value="{$v.brand_id}"/>         <span class="lbl"></span>       </label>     </td>     <td>{$v.brand_name}</td>   </tr> </foreach> <tr>     <td colspan="2">       <button class="btn btn-xs btn-danger" onclick="return tijiao('del')">         <i class="icon-trash bigger-110"></i>         刪除       </button>      </td>   </tr>

上面刪除的javascript方法是這樣寫的:

<script type="text/javascript"> function tijiao(type){   if(type == 'del'){     $('#my_form').attr('action',"{:U('Admin/Brand/brand_del')}");   }else if(type == 'sort'){     $('#my_form').attr('action',"{:U('Admin/Brand/brand_sort')}");   }   return true; } </script>

附加:其實判定文件是否有上傳最好用這個數據:

$_FILES['input_name']['size']

是否大于零;

推薦:《最新的10個thinkphp視頻教程》

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
手机看片一级片| 无码人妻精品一区二区三区66| 制服丝袜综合网| 精品视频一区二区在线| 黄色片在线免费| 911av视频| www.日本三级| 国产高清视频网站| 路边理发店露脸熟妇泻火| 欧洲美女和动交zoz0z| 可以在线看的av网站| 性猛交ⅹ×××乱大交| 那种视频在线观看| 久久久久久久久久一区二区| 免费在线看黄色片| 另类小说第一页| 久久久无码中文字幕久...| 男人揉女人奶房视频60分| 欧美丝袜在线观看| 97在线播放视频| 国产成人艳妇aa视频在线| 在线观看免费成人av| 免费看欧美黑人毛片| 国产性生活一级片| 久久久999免费视频| 中文字幕精品在线播放| 国产小视频精品| 久久久久久久久久久久久国产精品| 污视频网址在线观看| 97国产精东麻豆人妻电影| 国产高清免费在线| 色综合色综合色综合色综合| 国产精品12345| av中文字幕av| 亚洲黄色av片| 杨幂毛片午夜性生毛片| 激情综合网婷婷| 男人靠女人免费视频网站| 欧美亚洲色图视频| 老司机午夜网站| 自拍偷拍视频在线| 久久精品国产露脸对白| 激情黄色小视频| 午夜精品中文字幕| 免费涩涩18网站入口| 欧美伦理视频在线观看| 欧美韩国日本在线| 欧美成人xxxxx| www.com毛片| 久久久精品在线视频| 干日本少妇首页| 欧美老熟妇喷水| 手机在线免费毛片| 性欧美18一19内谢| 亚洲制服在线观看| 久久成人福利视频| youjizzxxxx18| xxxxxx在线观看| 欧美 日韩 国产 激情| 日韩高清在线一区二区| 大j8黑人w巨大888a片| 最近免费观看高清韩国日本大全| 男人靠女人免费视频网站| 欧美精品久久96人妻无码| 免费毛片网站在线观看| 少妇久久久久久被弄到高潮| 国产欧美久久久久| 嫩草影院中文字幕| 国产免费黄色一级片| 欧美日韩第二页| 欧美wwwwwww| 男女h黄动漫啪啪无遮挡软件| 一级特黄妇女高潮| 欧美 日本 亚洲| 奇米影视四色在线| 免费久久久久久| 欧美性大战久久久久xxx| 精品少妇无遮挡毛片| 99re99热| 亚洲熟妇av日韩熟妇在线| 五月天婷婷激情视频| eeuss中文| 乱子伦视频在线看| av动漫免费观看| 欧美日韩激情视频在线观看| 国产福利精品一区二区三区| 2018中文字幕第一页| 久久婷婷国产91天堂综合精品| 日韩精品视频网址| 免费黄色福利视频| 欧美性受黑人性爽| 日本999视频| 国产一级大片免费看| 欧美三级午夜理伦三级富婆| 欧美高清中文字幕| 日本黄大片一区二区三区| 成年人看的毛片| 性久久久久久久久久久久久久| 国产av天堂无码一区二区三区| 亚洲一区精品视频在线观看| 欧美人成在线观看| 日本一本在线视频| 欧美精品性生活| 男人日女人下面视频| 浴室偷拍美女洗澡456在线| 一区二区在线播放视频| 少妇人妻大乳在线视频| 手机在线免费毛片| 精品亚洲一区二区三区四区| 9色视频在线观看| 少妇熟女一区二区| 久久久久久久少妇| 日本a在线天堂| 欧美 日韩 国产 在线观看| 91av在线免费播放| 99国产精品白浆在线观看免费| chinese少妇国语对白| 97国产在线播放| 国产 福利 在线| 日韩精品在线中文字幕| 欧美另类videosbestsex日本| 我的公把我弄高潮了视频| 一区二区三区 欧美| 两根大肉大捧一进一出好爽视频| 黄色成人在线免费观看| 最近免费观看高清韩国日本大全| 天天影视色综合| 欧美成人福利在线观看| 激情婷婷综合网| 男人舔女人下面高潮视频| 色欲av无码一区二区人妻| 久久久久免费看黄a片app| 蜜臀av无码一区二区三区| 国产成人一二三区| 国产精品videossex国产高清 | 毛片在线视频观看| av动漫在线免费观看| 欧美中文字幕在线观看视频| 9色porny| 男人操女人逼免费视频| 看av免费毛片手机播放| 国产成人无码一二三区视频| 狠狠操精品视频| 成人免费在线观看视频网站| 国产高潮免费视频| 不用播放器的免费av| 日本中文字幕在线不卡| 91免费版看片| 国产精品后入内射日本在线观看| 国产97在线 | 亚洲| 天天操天天爱天天爽| 在线能看的av网站| 青草全福视在线| 国产美女无遮挡网站| 一区二区三区入口| ijzzijzzij亚洲大全| 国产69精品久久久久999小说| 日本黄网站免费| 黄色三级视频在线播放| 成人午夜视频在线观看免费| 欧美私人情侣网站| 国产四区在线观看| 国产淫片免费看| 亚洲免费在线播放视频| 国产专区在线视频| 久久久精品麻豆| 亚洲小视频在线播放| 男人插女人下面免费视频| 亚洲美女自拍偷拍| 免费激情视频在线观看| 99精品视频网站| 妺妺窝人体色www在线观看| 51xx午夜影福利| caopor在线视频| 色天使在线观看| 日本网站在线看| 欧美成人三级在线播放| av日韩在线看| 大胆欧美熟妇xx| 无码人妻丰满熟妇区毛片18| 手机视频在线观看| 大地资源网在线观看免费官网| 神马午夜伦理影院| 亚欧在线免费观看| 波多野结衣 作品| 91最新在线观看| 日韩精品在线观看av| 污版视频在线观看| 别急慢慢来1978如如2| 色悠悠久久综合网| 黑森林精品导航| 欧美深夜福利视频| 日本一级黄视频| 欧美又黄又嫩大片a级| 国产 porn| 99草草国产熟女视频在线| 日本一道本久久| 欧美国产日韩激情| 日本一级黄视频| 好色先生视频污|