Thinkphp框架+Layui實現(xiàn)圖片/文件上傳功能分析
本文實例講述了Thinkphp框架+Layui實現(xiàn)圖片/文件上傳功能。分享給大家供大家參考,具體如下:
在項目中用到了,再網(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>點擊上傳,或?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),并實現(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é)》。
希望本文所述對大家基于ThinkPHP框架的PHP程序設(shè)計有所幫助。
相關(guān)文章
thinkphp5使用phpmail發(fā)送qq郵件的實現(xiàn)過程
這篇文章主要給大家介紹了thinkphp5使用phpmail發(fā)送qq郵件的實現(xiàn)過程,文中有詳細(xì)的代碼示例供大家參考,具有一定的參考價值,感興趣的小伙伴可以自己動手嘗試一下2023-10-10
PHP中Restful api 錯誤提示返回值實現(xiàn)思路
REST是Representational State Transfer的縮寫,翻譯為“表現(xiàn)層狀態(tài)轉(zhuǎn)化”。表現(xiàn)層其實就是資源,因此可以理解為“資源狀態(tài)轉(zhuǎn)化”。接下來通過本文給大家介紹Restful api 錯誤提示返回值實現(xiàn)思路,感興趣的朋友一起學(xué)習(xí)吧2016-04-04

