本文實(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ū)⑽募献У酱颂?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ì)有所幫助。
您可能感興趣的文章:- layui框架實(shí)現(xiàn)文件上傳及TP3.2.3(thinkPHP)對(duì)上傳文件進(jìn)行后臺(tái)處理操作示例
- ThinkPHP結(jié)合AjaxFileUploader實(shí)現(xiàn)無刷新文件上傳的方法
- Thinkphp多文件上傳實(shí)現(xiàn)方法
- thinkPHP3.2簡(jiǎn)單實(shí)現(xiàn)文件上傳的方法
- thinkphp表單上傳文件并將文件路徑保存到數(shù)據(jù)庫中
- 封裝ThinkPHP的一個(gè)文件上傳方法實(shí)例
- Thinkphp3.2簡(jiǎn)單解決多文件上傳只上傳一張的問題
- Thinkphp5 自定義上傳文件名的實(shí)現(xiàn)方法
- ThinkPHP實(shí)現(xiàn)帶驗(yàn)證碼的文件上傳功能實(shí)例
- Thinkphp5+uploadify實(shí)現(xiàn)的文件上傳功能示例
- Thinkphp5框架實(shí)現(xiàn)圖片、音頻和視頻文件的上傳功能詳解
- ThinkPHP5.0多個(gè)文件上傳后找不到臨時(shí)文件的修改方法