layui 图片上传。auto=false 的时候,图片删除不了

时间: 2024-03-18 17:44:47 浏览: 24
在 layui 的图片上传组件中,当 `auto` 参数设置为 `false` 时,需要手动调用 `upload.render()` 方法上传图片,而且在上传之前需要将图片的 `base64` 编码作为参数传递给 `upload.render()` 方法。 如果在上传前删除图片,需要注意以下几点: 1. 删除图片后需要将图片的 `base64` 编码从上传队列中移除,以避免上传时上传已删除的图片。 2. 删除图片后需要将图片的 `img` 标签从 DOM 中移除,以避免在重新上传时出现重复的图片。 3. 删除图片后需要重新调用 `upload.render()` 方法上传图片,以保证上传队列中的图片是最新的。 以下是一个实现手动上传并删除图片的示例代码: ```html <div class="layui-upload"> <button type="button" class="layui-btn" id="upload-btn">上传图片</button> <div class="layui-upload-list"> <img src="" alt="" class="layui-upload-img"> <input type="hidden" name="img" value=""> </div> </div> ``` ```javascript // 初始化上传组件 layui.use('upload', function() { var upload = layui.upload; var $ = layui.jquery; var imgSrc = ''; // 记录当前上传的图片的 base64 编码 // 监听上传按钮点击事件 $('#upload-btn').click(function() { // 选择图片并获取 base64 编码 layui.use('layer', function() { var layer = layui.layer; var index = layer.open({ type: 1, title: '选择图片', content: '<div class="layui-upload-drag"><i class="layui-icon layui-icon-upload"></i><p>点击或拖拽图片上传</p></div>', success: function(layero, index) { upload.render({ elem: layero.find('.layui-upload-drag'), accept: 'images', auto: false, choose: function(obj) { obj.preview(function(index, file, result) { imgSrc = result; // 记录图片的 base64 编码 layer.close(index); // 关闭选择图片的弹窗 }); } }); } }); }); }); // 监听删除图片按钮点击事件 $('.layui-upload-list').on('click', '.layui-icon-delete', function() { $(this).parent().remove(); // 从 DOM 中移除图片 imgSrc = ''; // 清空图片的 base64 编码 upload.render({ // 重新初始化上传组件 elem: '#upload-btn', url: '/upload/', accept: 'images', auto: false, bindAction: '#upload-action', before: function() { if (!imgSrc) { layer.msg('请先选择图片'); return false; } this.data = { // 将图片的 base64 编码作为参数传递给后台 img: imgSrc } }, done: function(res) { layer.msg('上传成功'); } }); }); // 监听上传按钮点击事件 $('#upload-action').click(function() { if (!imgSrc) { layer.msg('请先选择图片'); return false; } upload.render({ elem: '#upload-btn', url: '/upload/', accept: 'images', auto: false, bindAction: '#upload-action', before: function() { this.data = { // 将图片的 base64 编码作为参数传递给后台 img: imgSrc } }, done: function(res) { layer.msg('上传成功'); } }); }); }); ``` 在上面的代码中,我们首先在 HTML 中定义了一个上传组件,包括一个上传按钮和一个图片预览区域。然后在 JavaScript 中初始化了上传组件,并监听了上传按钮和删除图片按钮的点击事件。 当点击上传按钮时,弹出一个选择图片的弹窗,选择图片后获取其 base64 编码,并将其记录在变量 `imgSrc` 中。 当点击删除图片按钮时,从 DOM 中移除图片并清空 `imgSrc` 变量,然后重新初始化上传组件。需要注意的是,在重新初始化上传组件时,需要将图片的 base64 编码作为参数传递给 `before` 回调函数,以便在上传时将其发送给后台。 当点击上传按钮时,将图片的 base64 编码作为参数传递给 `before` 回调函数,并重新初始化上传组件。当上传完成后,显示上传成功的提示信息。

相关推荐

最新推荐

recommend-type

layui 图片上传+表单提交+ Spring MVC的实例

今天小编就为大家分享一篇layui 图片上传+表单提交+ Spring MVC的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

layui 上传图片 返回图片地址的方法

今天小编就为大家分享一篇layui 上传图片 返回图片地址的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

在LayUI图片上传中,解决由跨域问题引起的请求接口错误的方法

今天小编就为大家分享一篇在LayUI图片上传中,解决由跨域问题引起的请求接口错误的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

layui的table中显示图片方法

今天小编就为大家分享一篇layui的table中显示图片方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

layui自己添加图片按钮并点击跳转页面的例子

今天小编就为大家分享一篇layui自己添加图片按钮并点击跳转页面的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

解释minorization-maximization (MM) algorithm,并给出matlab代码编写的例子

Minorization-maximization (MM) algorithm是一种常用的优化算法,用于求解非凸问题或含有约束的优化问题。该算法的基本思想是通过构造一个凸下界函数来逼近原问题,然后通过求解凸下界函数的最优解来逼近原问题的最优解。具体步骤如下: 1. 初始化参数 $\theta_0$,设 $k=0$; 2. 构造一个凸下界函数 $Q(\theta|\theta_k)$,使其满足 $Q(\theta_k|\theta_k)=f(\theta_k)$; 3. 求解 $Q(\theta|\theta_k)$ 的最优值 $\theta_{k+1}=\arg\min_\theta Q(
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。