Thinkphp框架+Layui實(shí)現(xiàn)圖片/文件上傳功能分析
本文實(shí)例講述了Thinkphp框架+Layui實(shí)現(xiàn)圖片/文件上傳功能。分享給大家供大家參考,具體如下:
在項(xiàng)目中用到了,再網(wǎng)上找了現(xiàn)成的代碼都是借口異常或者非法上傳,所以在一番摸索搞定之后拿來和大家分享。
html:
<form class="layui-form layui-form-pane" action="" style="margin-top:20px;" enctype="multipart/form-data"> <center> <div class="layui-upload-drag" id="uploadBanner"> <img class="layui-upload-img" id="upload-photo"> <i class="layui-icon" id="upload-icon"></i> <p>點(diǎn)擊上傳,或?qū)⑽募献У酱颂?lt;/p> <p>建議尺寸1920*512</p> </div> <input type="hidden" id="res" name="banner_photo" value="" lay-verify="required" /> <div class="layui-form-item" style="margin-top:10px;"> <button class="layui-btn" lay-submit="" lay-filter="sub">提交</button> </div> <div id="demoText"></div> </center> </form>
JS:
layui.use('upload', function(){ var $ = layui.jquery ,upload = layui.upload; //普通圖片上傳 var uploadInst = upload.render({ elem: '#uploadBanner' ,url: "{:U('Api/doUploadPic')}" ,before: function(obj){ //預(yù)讀本地文件示例,不支持ie8 obj.preview(function(index, file, result){ $('#upload-photo').attr('src', result); //圖片鏈接(base64) $('#upload-photo').attr('style', 'height:10rem;'); $('#upload-icon').attr('style','display:none;'); }); } ,done: function(res, index, upload){ //如果上傳失敗 if(res.code > 0){ return layer.msg('上傳失敗'); } //上傳成功 console.log("成功啦!" + obj2string(res) + " " + index + " " + upload); } ,error: function(){ //演示失敗狀態(tài),并實(shí)現(xiàn)重傳 var demoText = $('#demoText'); demoText.html('<span style="color: #FF5722;">上傳失敗</span> <a class="layui-btn layui-btn-xs demo-reload">重試</a>'); demoText.find('.demo-reload').on('click', function(){ uploadInst.upload(); }); } }); });
PHP接口:
public function doUploadPic()//上傳模塊 { $upload = new \Think\Upload(); $upload->maxSize = 3145728; $upload->exts = array('jpg', 'gif', 'png', 'jpeg'); $upload->rootPath = './Public/'; // 設(shè)置附件上傳根目錄 $upload->savePath = 'upload/'; // 設(shè)置附件上傳子目錄 $info = $upload->upload(); if(!$info){ $this->error($upload->getError()); }else{ foreach($info as $file){ $data = '/Public'.$file['savepath'] . $file['savename']; $file_a=$data; echo '{"code":0,"msg":"成功上傳","data":{"src":"'.$file_a.'"}}'; } } }
圖片就上傳到/Public/upload文件夾下了:
更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術(shù)總結(jié)》。
希望本文所述對(duì)大家基于ThinkPHP框架的PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
codeigniter自帶數(shù)據(jù)庫(kù)類使用方法說明
在 CodeIgniter 中,使用數(shù)據(jù)庫(kù)是非常頻繁的事情。你可以使用框架自帶的數(shù)據(jù)庫(kù)類,就能便捷地進(jìn)行數(shù)據(jù)庫(kù)操作2014-03-03YII Framework框架使用YIIC快速創(chuàng)建YII應(yīng)用之migrate用法實(shí)例詳解
這篇文章主要介紹了YII Framework框架使用YIIC快速創(chuàng)建YII應(yīng)用之migrate用法,詳細(xì)分析了migrate的功能與用法,并給出創(chuàng)建登錄后臺(tái)的實(shí)例講述了migrate的相關(guān)使用技巧,需要的朋友可以參考下2016-03-03php之header的不同用法總結(jié)(實(shí)例講解)
下面小編就為大家分享一篇php之header的不同用法總結(jié)(實(shí)例講解),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2017-11-11php的memcache類分享(memcache隊(duì)列)
這篇文章主要介紹了php的memcache類的使用方法(memcache隊(duì)列),需要的朋友可以參考下2014-03-03php二維數(shù)組排序與默認(rèn)自然排序的方法介紹
本篇文章介紹了,在php中二維數(shù)組排序與默認(rèn)自然排序的方法。需要的朋友參考下2013-04-04