您好,登錄后才能下訂單哦!
本篇內容介紹了“thinkphp5怎么加layui實現圖片上傳功能”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
網站中很多表單都會用到上傳圖片,logo,照片,用戶也會上傳圖片,這個時候網站就需要一個上傳圖片的功能,而且在上傳后希望能預覽一下看上傳的對不對。
thinkphp5加layui實現圖片上傳功能(帶圖片預覽)思路,異步傳輸圖片并預覽,將異步上傳后的值返回表單隱藏域再提交。
首先,要引入jQuery文件,這是必須的
<link rel="stylesheet" type="text/css" href="__STATIC__/plugins/layui/css/layui.css" rel="external nofollow" > <script type="text/javascript" src="__STATIC__/plugins/layui/layui.js"></script>
<form class="layui-form"> <div class="layui-input-inline"> <button class="layui-btn layui-btn-sm" onclick="return false;" id="upload_img"><i class="layui-icon"></i>上傳圖片</button> <img id="pre_img" <?php if($data['item']['img']){echo 'src="'.$data['item']['img'].'"';}?> /> <input type="hidden" name="img" value="{$data.item.img}"> </div> <div class="layui-form-item"> <div class="layui-input-block"> <button class="layui-btn" onclick="save()">保存</button> </div> </div> </form>
<script type="text/javascript"> layui.use(['form','layer','upload'],function(){ $ = layui.jquery; var form = layui.form; layer = layui.layer; var upload = layui.upload; //執行實例 var uploadInst = upload.render({ elem: '#upload_img' //綁定元素 ,url: '/admins.php/admins/video/upload_img' //上傳接口 ,accept:'images' ,done: function(res){ //上傳完畢回調 $('#pre_img').attr('src',res.msg); $('input[name="img"]').val(res.msg); } ,error: function(){ //請求異常回調 } }); }); // 保存 function save(){ var title = $.trim($('input[name="title"]').val()); var url = $.trim($('input[name="url"]').val()); if(title == ''){ layer.msg('請輸入影片名稱',{'icon':2,'anim':6}); return; } if(url == ''){ layer.msg('請輸入影片地址',{'icon':2,'anim':6}); return; } $.post('/admins.php/admins/video/save',$('form').serialize(),function(res){ if(res.code>0){ layer.msg(res.msg,{'icon':2,'anim':2}); }else{ layer.msg(res.msg,{'icon':1}); setTimeout(function(){parent.window.location.reload();},1000); } },'json'); } </script>
public function upload_img(){ $file = request()->file('file'); if($file==null){ exit(json_encode(array('code'=>1,'msg'=>'沒有文件上傳'))); } $info = $file->move(ROOT_PATH.'public'.DS.'uploads'); $ext = ($info->getExtension()); if(!in_array($ext,array('jpg','jpeg','gif','png'))){ exit(json_encode(array('code'=>1,'msg'=>'文件格式不支持'))); } $img = '/uploads/'.$info->getSaveName(); exit(json_encode(array('code'=>0,'msg'=>$img))); }
public function save(){ $id = (int)input('post.id'); $data['title'] = trim(input('post.title')); $data['channel_id'] = (int)input('post.channel_id'); $data['charge_id'] = (int)input('post.charge_id'); $data['area_id'] = (int)input('post.area_id'); $data['img'] = trim(input('post.img')); $data['url'] = trim(input('post.url')); $data['keywords'] = trim(input('post.keywords')); $data['desc'] = trim(input('post.desc')); $data['status'] = (int)input('post.status'); if($data['title'] == ''){ exit(json_encode(array('code'=>1,'msg'=>'影片名稱不能為空'))); } if($data['url'] == ''){ exit(json_encode(array('code'=>1,'msg'=>'影片地址不能為空'))); } if($id){ $this->db->table('video')->where(array('id'=>$id))->update($data); }else{ $data['add_time'] = time(); $this->db->table('video')->insert($data); } exit(json_encode(array('code'=>0,'msg'=>'保存成功'))); }
“thinkphp5怎么加layui實現圖片上傳功能”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。