layui加tp5图片上传实例

      <div class="layui-fluid">
            <div class="layui-row">
                <form class="layui-form">
                  <div class="layui-form-item">
                      <label for="username" class="layui-form-label">
                          <span class="x-red">*</span>轮播图
                      </label>
                      <div class="layui-input-inline">
                          <button type="button" class="layui-btn" id="add">
                            <i class="layui-icon"></i>上传图片
                          </button>
                      </div>
                      <div class="layui-form-mid layui-word-aux">
                          <span class="x-red">*图片格式1920*450</span>
                      </div>
                  </div>
                  <div class="layui-form-item">
                    <img src="" alt="" id="img" style="width:100%;max-height:450px;">
                  </div>
                  <input type="hidden" name="banner" id="banner" value="">
                  <div class="layui-form-item">
                      <label for="L_repass" class="layui-form-label">
                      </label>
                      <button  class="layui-btn" lay-filter="add" lay-submit="">
                          增加
                      </button>
                  </div>
              </form>
            </div>
        </div>

前台代码,创建一个hideen的隐藏input框来接收上传完成的图片路径当点击上传的时候把图片路径插入数据库

layui代码实例

//执行实例
//执行图片上传实例
var uploadInst = upload.render({
  elem: ‘#add‘ //绑定元素
  ,url: ‘{:url(‘uploads‘)}‘ //上传接口
  ,size: 2048
  ,choose: function(obj){
    //预读本地文件示例,不支持ie8
    obj.preview(function(index, file, result){
      $(‘#img‘).attr(‘src‘, result); //图片链接(base64)直接将图片地址赋值给img的src属性
    });
    // 上传图片时吧旧图片的目录传过去删除
    this.data={‘id‘:$("#banner").val()};

  },done: function(res){
    // 赋值新的图片名
    $("#banner").val(res.filename);
    //上传完毕回调
    // console.log(res);
    if(res.code==1){
      return layer.msg(‘图片上传成功,请确认增加‘);
    }else{
      return layer.msg(‘图片上传失败,请刷新后重试‘);
    }
  }
  ,error: function(e){
    //请求异常回调
  }
});

tp图片接口代码

/**
* [uploads 上传图片接口]
* @return [type] [图片名]
*/
public function uploads(){
    $id = input(‘id‘);
    $file = request()->file(‘file‘);
    // 移动到框架应用根目录/public/uploads/ 目录下
    if($file){
        // 有图片上传先删除之前的图片
        // 获取上个图片路径
        $dir=ROOT_PATH . ‘public/uploads/‘.$id;
        // 如果图片存在则进行删除
        if(file_exists($dir)){
            @unlink($dir);
        }
        // 上传新的图片
         $info = $this->upload($file);;
         $result=[
             ‘code‘=>1,
             ‘msg‘=>‘上传成功‘,
             ‘filename‘=>str_replace(‘\\‘, ‘/‘,$info)
         ];
         return json_encode($result);
    }else{
        return false;
    }

}

方法里的id是如果用户点了第二次上传片,那么就会把第一张上传了的图片执行删除处理,减少服务器空间。

希望这边文章对你们有用

原文地址:https://www.cnblogs.com/lcxin/p/11532753.html

时间: 2024-11-09 12:13:37

layui加tp5图片上传实例的相关文章

webuploader项目中多图片上传实例

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title> 百度uploader Demo</title> <!--引入CSS--> <link rel="stylesheet" type="t

TP5图片上传

1 /*图片上传*/ 2 public function upload(){ 3 // 获取表单上传文件 例如上传了001.jpg 4 $file = request()->file('file'); 5 // 移动到框架应用根目录/public/uploads/ 目录下 6 $info = $file->validate(['ext'=>'jpg,png,gif'])->move(ROOT_PATH . 'public' . DS . 'uploads'); 7 if($info

bootstrap 图片上传实例

引入的包: import java.io.File; import java.util.Iterator; import java.util.UUID; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.commons.fileupload.File

图片上传实例

jsp: <form action="/image/save.jhtml" method="post" enctype="multipart/form-data" style="width: 500px"> <input type="hidden" name="focusId" value="${image.focusId}"/> <in

uploadify多图片上传实例

upload.php <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>uploadify 多文件上传例子</title> <link rel="stylesheet" type="text/css" href="upload

Layui upload多图片上传, 传参后台接受不到

Layui upload动态传参,后台接收不到,解决方法 这里参数动态($(#).val())拿去不到,除非写死,必须要用before从新赋值 layui.config({ base: '/Assets/layui/' //静态资源所在路径 }).extend({ index: 'lib/index' //主入口模块 }).use(['index', 'upload'], function () { var $ = layui.jquery , upload = layui.upload; va

multer/express/node.js图片上传实例

前端 <form enctype="multipart/form-data" method="post"> <input type="file" id="avatar" name="avatar" /> <button>提交</button> </form> <script> $('button').click(function ()

多图上传控制器及模型代码(2)thinkphp5+layui实现多图上传保存到数据库,可以实现图片自由排序,自由删除。

公共css代码 <style> .layui-upload-img { width: 90px; height: 90px; margin: 0; } .pic-more { width:100%; left; margin: 10px 0px 0px 0px;} .pic-more li { width:90px; float: left; margin-right: 5px;} .pic-more li .layui-input { display: initial; } .pic-mor

[原创]超强C#图片上传,加水印,自动生成缩略图源代码

<%@ Page Language=“C#“ AutoEventWireup=“true“ %> <%@ Import Namespace=“System“ %> <%@ Import Namespace=“System.IO“ %> <%@ Import Namespace=“System.Net“ %> <%@ Import NameSpace=“System.Web“ %> <%@ Import NameSpace=“Legalsof