首页 教程 开发语言 Thinkphp5怎么加layui实现图片上传功能

Thinkphp5怎么加layui实现图片上传功能

网站中很多表单都会用到上传图片,logo,照片,用户也会上传图片,这个时候网站就需要一个上传图片的功能,而且在上传后希望能预览一下看上传的对不对。

thinkphp5加layui实现图片上传功能(带图片预览)思路,异步传输图片并预览,将异步上传后的值返回表单隐藏域再提交。

1、引入文件

首先,要引入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>

2、HTML部分

<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">&#xe67c;</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>

3、功能实现

<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>

4、后台处理

图片上传

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'=>'保存成功'))); }

评论(0)条

提示:请勿发布广告垃圾评论,否则封号处理!!

    猜你喜欢
    【MySQL】用户管理

    【MySQL】用户管理

     服务器/数据库  2个月前  2.15k

    我们推荐使用普通用户对数据的访问。而root作为管理员可以对普通用户对应的权限进行设置和管理。如给张三和李四这样的普通用户权限设定后。就只能操作给你权限的库了。

    Cursor Rules 让开发效率变成10倍速

    Cursor Rules 让开发效率变成10倍速

     服务器/数据库  2个月前  1.21k

    在AI与编程的交汇点上,awesome-cursorrules项目犹如一座灯塔,指引着开发者们驶向更高效、更智能的编程未来。无论你是经验丰富的老手,还是刚入行的新人,这个项目都能为你的编程之旅增添一抹亮色。这些规则文件就像是你私人定制的AI助手,能够根据你的项目需求和个人偏好,精确地调教AI的行为。突然间,你会发现AI不仅能理解Next.js的最佳实践,还能自动应用TypeScript的类型检查,甚至主动提供Tailwind CSS的类名建议。探索新的应用场景,推动AI辅助编程的边界。

    探索Django 5: 从零开始,打造你的第一个Web应用

    探索Django 5: 从零开始,打造你的第一个Web应用

     服务器/数据库  2个月前  1.13k

    Django 是一个开放源代码的 Web 应用程序框架,由 Python 写成。它遵循 MVT(Model-View-Template)的设计模式,旨在帮助开发者高效地构建复杂且功能丰富的 Web 应用程序。随着每个版本的升级,Django 不断演变,提供更多功能和改进,让开发变得更加便捷。《Django 5 Web应用开发实战》集Django架站基础、项目实践、开发经验于一体,是一本从零基础到精通Django Web企业级开发技术的实战指南《Django 5 Web应用开发实战》内容以。

    MySQL 的mysql_secure_installation安全脚本执行过程介绍

    MySQL 的mysql_secure_installation安全脚本执行过程介绍

     服务器/数据库  2个月前  1.08k

    mysql_secure_installation 是 MySQL 提供的一个安全脚本,用于提高数据库服务器的安全性

    【MySQL基础篇】概述及SQL指令:DDL及DML

    【MySQL基础篇】概述及SQL指令:DDL及DML

     服务器/数据库  2个月前  483

    数据库是长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据库不仅仅是数据的简单堆积,而是遵循一定的规则和模式进行组织和管理的。数据库中的数据可以包括文本、数字、图像、音频等各种类型的信息。

    Redis中的哨兵(Sentinel)

    Redis中的哨兵(Sentinel)

     服务器/数据库  2个月前  309

    ​ 上篇文章我们讲述了Redis中的主从复制(Redis分布式系统中的主从复制-CSDN博客),本篇文章针对主从复制中的问题引出Redis中的哨兵,希望本篇文章会对你有所帮助。