上传图片的本地预览

Vue中通过el-upload组件实现上传前预览本地图片 1、实现效果如下图所示 用户选择本地待上传的图片,选择成功后,上传组件隐藏,呈现本地预览组件,单击图片并实现图片的放大呈现 2、template(相当于html)部分的代码如下 代码实现逻辑: 在el-upload组件中,将auto-upload设置为false不会执行自动上传,给予on-change一个触发事件imgSaveToUrl,在imgSaveToUrl方法中用于生成可用于本... 阅读详情

上传图片的本地预览

<input type="file" id='uploadImg'>
<img src="" alt="" class="imgShow">

这里写图片描述

//上传图片本地预览
        $('#uploadImg').on('change',function(){
            var file = $(this)
            var fileObj = file[0];  //获取当前元素
            var dataURL;
            var windowURL = window.URL;
            if(fileObj.files[0]){
                dataURL = windowURL.createObjectURL(fileObj.files[0])   //创建一个新的对象URL,该对象URL可以代表某一个指定的File对象或Blob对象.
                $('.imgShow').attr('src',dataURL);
            }
            else{
                dataURL = file.val();
                console.log(dataURL)
                $('.imgShow').style.filter = 'progid:DXImageTransform.Micsoft.AlphaImageLoader(sizingMethod = scale)'
                $('.imgShow').filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = dataURL;
            }
            $.ajaxFileUpload({
             url:"",
             fileElementId: "uploadImg",
             dataType: "string",
             success: function(data) {
                 //图片路径
                 $('.imgShow').attr("src",data);
             }
         });

        })

上传图片本地预览 + 压缩上传

<input type="file" accept="image/*"  class='file' id='uploadImg' value=''>      
<img src="" class='imgShow' />
 $('#uploadImg').on('change',function(event){
        if(!isCanvasSupported){  
                return;
         }else{  
            compress(event, function(base64Img){  
                $(".imgShow").attr("src",base64Img);  
                console.log(base64Img);  //压缩的base64的图片格式,通过ajax上传
                //点击图片放大
                    $('.imgShow').click(function(){
                        var width = $('.imgShow').width();    //通过判断元素的宽度
                        console.log(width)          
                        if(width == '200'){
                            $('.mengban').show();
                            $('.imgShow').addClass('changeImg')
                        }
                        $('.mengban').click(function(){
                            $('.imgShow').removeClass('changeImg')
                            $('.mengban').hide();
                        })
                    })
                     ajax('qnl_app/tes_ac_img',{'base64Img':base64Img},function(date){  
                        console.log(JSON.stringify(date)); 
                        $('.imgShow').attr("src",data); 
                     });  
                });  
             }  
      })
压缩图片用的js方法如下:
//判断是否存在画布  
function isCanvasSupported() {  
    var elem = document.createElement('canvas');  
    return !!(elem.getContext && elem.getContext('2d'));  
}  

//压缩方法  
function compress(event, callback) {  
    if ( typeof (FileReader) === 'undefined') {  
        console.log("当前浏览器内核不支持base64图标压缩");  
        //调用上传方式  不压缩  
    } else {  
        try {  
            var file = event.currentTarget.files[0];  
             if(!/image\/\w+/.test(file.type)){     
                    alert("请确保文件为图像类型");    
                    return false;    
             }   
            var reader = new FileReader();  
            reader.onload = function (e) {  
            var image = $('<img/>');  
            image.load(function () {  
            console.log("开始压缩");  
            var square = 700;  
            var canvas = document.createElement('canvas');  
            canvas.width = square;  
            canvas.height = square;  
            var context = canvas.getContext('2d');  
            context.clearRect(0, 0, square, square);  
            var imageWidth;  
            var imageHeight;  
            var offsetX = 0;  
            var offsetY = 0;  
            if (this.width > this.height) {  
              imageWidth = Math.round(square * this.width / this.height);  
              imageHeight = square;  
              offsetX = - Math.round((imageWidth - square) / 2);  
            } else {  
              imageHeight = Math.round(square * this.height / this.width);  
              imageWidth = square;  
              offsetY = - Math.round((imageHeight - square) / 2);  
            }  
            context.drawImage(this, offsetX, offsetY, imageWidth, imageHeight);  
            var data = canvas.toDataURL('image/jpeg');  
                //压缩完成执行回调  
               callback(data);  
            });  
            image.attr('src', e.target.result);  
            };  
            reader.readAsDataURL(file);  
        } catch(e) {  
            console.log("压缩失败!");  
            //调用上传方式  不压缩  
        }  
    }  
}  
H5开发:使用H5、CSS、JS、JQUERY实现从本地选择图片、预览图片、上传图片列表 使用H5、CSS、JS、JQUERY实现从本地选择图片、预览图片、上传图片列表 阅读详情

相关推荐

实现JavaScript本地图片预览及上传功能

HTML5的File API为Web应用提供了一个方便的途径来访问用户的本地文件系统。它主要通过元素来实现,当用户选择文件后,可以通过JavaScript与这些文件进行交互。FormData对象提供了构建一组键值对,表示表单字段和其值的方式,能够方便地与XMLHttpRequest一起使用来传输数据。它尤其适用于文件上传场景。此外,FormData还能自动处理文件内容编码和MIME类型的设置。

weixin_42462474的博客 913

关于本地上传图片时的预览(结合el-upload)

URL.createObjectURL()方法介绍该方法跟URL.createObjectURL()的使用方法--auto-upload=false 先关闭el-upload的自动上传改为手动。

呐的博客 1251

WSL2下用QEMU模拟ARM开发板:从编译uboot到调试全流程(附常见错误解决)

本文详细介绍了在WSL2环境下使用QEMU模拟ARM开发板的完整流程,包括uboot编译、内核调试等关键步骤。通过QEMU模拟vexpress-a9开发板,开发者可以高效搭建嵌入式开发环境,解决常见错误并提升开发效率。

solidity8miner的博客 286

图片上传并预览

前言 由于在项目中遇到一个上传图片的地方,一直在用公司框架,自己想了一下应该动手自己写一个完整的上传加深下印象,以下实现了全动态添加、删除、保存和预览。 添加:动态添加上传图片的容器。 删除:实现删除当前图片。 预览:包含了反转、上一张、下一张、放大、缩小、还原和拖动换位置。 保存:实时监听是否上传完整。 废话不多说了,上代码。 一、完成一个上传的整体思路。 首先你要知道你要用到什么东西?需要如何去做。 第一步:需要实现上传的标签,<input type="fil...

weixin_43609222的博客 2050

python:numpy分享(保姆级教程)

创建数组:array和ndarray、rand()、randn()、arange()、randint()、uniform()astype()基础函数:ceil()、floor()、rint()、argmax()、argmin()、cumsum()、cumprod()numpy 是数据分析必不可少的第三方库,具有高性能的特点,多用于做数组分析。内置函数:ceil()、floor()、rint()主要用于数组计算,支持多维数组。array和ndarray。比较函数:all、any。去重函数:unique。

sulin123123的博客 1730

多核系统核间通信(IPC)设计:从硬件机制到软件实现

在多核处理器与嵌入式系统设计中,核间通信(IPC)是实现计算资源协同工作的核心技术。其原理基于共享内存、硬件邮箱与中断等底层硬件机制,通过构建结构化的消息传递通道,实现核间高效、可靠的数据交换。该技术的核心价值在于打破多核间的壁垒,将分散的计算单元整合为有机整体,从而显著提升系统整体性能与响应能力。在工程实践中,IPC广泛应用于智能座舱、边缘AI网关、实时控制系统等场景,用于处理如仪表显示、AI推理、实时控制等复杂任务。本文聚焦于基于共享内存与VRING的消息队列实现,深入剖析缓存一致性、内存屏障等关键问题

weixin_27006759的博客 598

最常用的两种上传图片预览方式

方法1是浏览器为选择的图片设置一个虚拟路径,再将这个虚拟路径赋值给img标签的src 方法2是将选中的图片转换为base64位的编码,再将这个编码赋值给img标签的src。这个编码是独一无二的,可以在任何浏览器中通过地址访问 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head&g.

qq_51369065的博客 1249

【硬件自锁开关】用两个D触发器完成实用的自锁开关电路

性价比是做电子设计的人要考虑的事,在学会了用单片机解决大多数问题的时候,是否你也想过用简单的手段解决一个多数场合要解决的问题呢?按一下,输出状态由关闭变成开启,再按一下开启变成关闭。机械弹簧式的开关可以实现自锁的功能:钩子和弹簧将当前状态“储存”起来,这个能量为下一次触发的提供状态“翻转”的动力;在电子设计中,经常通过单片机的程序指令实现自锁:通过寄存器将当前电平状态暂存起来,下一次触发的时候寄存器内容“取反”,再将其输出到端口。可否用电路实现以上过程呢?完全可以,方案很简单,通过两个D触发器即可实现。

qq_33175704的博客 4261

js实现本地上传图片及预览

【代码】js实现本地上传图片及预览。

日常笔记/总结/系列知识梳理 3736

图解说明JLink驱动与目标板电源匹配的关键细节

深入讲解JLink驱动安装及使用过程中,如何正确匹配目标板电源,避免常见通信故障。通过图解方式清晰展示关键连接细节,确保调试稳定可靠,是嵌入式开发中不可或缺的实战经验分享。

weixin_42173218的博客 431

uniapp - 解决苹果ios真机运行报错:错误:请查看是否设备未加入到证书列表或者确认证书类型是否匹配(HbuilderX运行IOS手机出现问题,uniapp运行到IOS真机提示请查看是否设备未)

uni-app,ios苹果,App平台端,uniapp运行到IOS真机提示错误:请查看是否设备未加入到证书列表或者确认证书类型是否匹配,UUID在哪里,uniApp运行到ios真机报错解决,安装自定义基座App失败,没找到有计划资源,证书、标识符和描述文件,证书标识符和描述文件下面没有选项怎么回事,HBuilder真机调试报错请查看是否设备未加入到证书列表或者确认证书类型是否匹配,UniApp运行到IOS真机提示,授权的设备才可以直接安装基座,添加调试的IOS设备,在Devices中,添加手机设备UUID

🏆 前端领域优质创作者 1万+

获取图片预览地址的方法

方法一: getPreUrl(file) { let windowURL = window.URL || window.webkitURL let src = windowURL.createObjectURL(file) return src } 方法二: beforeUpload1(file) { let reader = new Fi...

ZhaoYLi 的编程学习笔记 1519

UNet改进(54):当医学图像分割遇上频域学习与自监督

本文提出了一种改进U-Net的方法,通过频域增强模块和代理任务模块提升医学图像分割性能。频域增强模块在傅里叶空间对特征图进行可学习的频率调制,重点增强高频细节特征;代理任务模块通过图像重建约束编码器保留关键信息。两个模块协同工作,在仅增加5%参数量的情况下,形成空间域、频域和重建约束三条互补的信息路径。该方法特别适用于需要精细边缘分割的医学图像任务,预期能提升5%-10%的边缘分割精度,在小样本场景效果更显著。部署时可移除代理任务模块,不影响推理效率。未来可探索空间自适应频域调制和更丰富的代理任务设计。

2501_91516851的博客 226

Vue中读取本地图片实现预览和上传

先看效果图: 上面展示了两张从本地添加的准备上传服务器的预览图片,效果还不错吧,哈哈哈。 下面是该页面中紫色框的布局与实现代码,我想有些人也不喜欢HTML中默认的上传文件样式,实在辣眼睛: <template> <div class="uploadFile"> <!-- ul、li标签用于展示从本地添加的预览图片 --> <ul v-show="uploadImg.length!=0"> &lt

鸭绒的博客 1万+

基于C++和Qt开发IEC104规约主站调试软件(第二章)

本章节主要讲解iec104主站软件界面设计和从站的连接功能以及部分功能代码的展示。

半青年的博客 860

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

本地图片上传及预览

以下采用原生的方式上传图片,如有更高需求,可以采用lrz插件本地上传压缩图片,具体可参考以下路径 http://www.jq22.com/jquery-info3419(感谢) &lt;body&gt; &lt;div&gt; &lt;input type="file" name="file" class="form-control" id="zx_img" style="p

small_cutey的博客 1191

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

js图片上传本地预览

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> ...

181

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

js实现图片上传本地预览

演示地址:https://xibushijie.github.io/static/uploadImg.html <!DOCTYPE> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <titl...

农码精神 247

Js 图片上传本地预览

Js 图片上传本地预览,这里只展示前端功能的实现方法,并且讲解了 IE 和 Firefox 两者兼容的处理方法。 这里是上传图片且在本地预览的 Js 函数的实现过程: function previewImage(){ var file = document.getElementById("uploadfile"); //用getAsDataURL从fi

xuanjiewu的专栏 885

web表单多图片上传+本地预览

先看效果 1 选择本地文件,预览  2 提交上传 3后台保存 4给前台返回 文件路径      1    前端代码        <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getS

mfc2003的专栏 3171

上传图片本地预览

以前做过上传图片功能,直接选择本地图片上传,感觉不是很完善,如果选择错误呢?想实现本地预览,可是总是找不到合适的代码,今天终于搞定!  

421

input file上传图片本地预览

1. 定义上传控件 &amp;lt;input id=&quot;inputImg&quot; type=&quot;file&quot; accept=&quot;image/png,image/jpeg,image/jpg&quot; onchange=&quot;changeFile(event)&quot;&amp;gt; 2. 本地图片预览 function changeFile(event) { var i

FE小白的进化之路 1177

图片上传本地预览(回显)插件

图片上传本地预览插件,本示例只是静态页面,请下载完整的示例查看 请下载完整的js和css样式,以及Demo &lt;html&gt; &lt;title&gt;文件上传&lt;/title&gt; &lt;head&gt; &lt;link rel="stylesheet" href="uploadPreview.css"&gt; &lt;

有梦想的咸鱼 1695

php本地预览图片,jQuery上传图片本地预览效果实例讲解

jQuery实现的上传图片本地预览效果简单示例本文实例讲述了jQuery实现的上传图片本地预览效果。分享给大家供大家参考,具体如下:www.jb51.net jquery上传图片本地预览效果$('#upload').change(function(){// 获取FileList的第一个元素alert(document.getElementById('upload').files[0]);var f...

weixin_29416037的博客 182

js php多图片上传预览,如何实现js上传图片本地预览同时支持预览截图的功能

在项目中经常会用到js上传图片本地预览的效果,同时需要在预览图上直接预览截图的范围。下面是我写的简单的demo,是用js结合cropper.js模拟实现此项前端的功能,后台则不考虑。准备:引入文件:插件地址:https://fengyuanchen.github.io/cropperjs/效果如下:一、实现js上传图片本地预览的功能。html:javascript:/*从file域获取本...

weixin_39613637的博客 191

SpringBoot上传图片到本地并在线预览

SpringBoot项目上传图片到本地并在线预览

萌新求带 2858
上一篇: 详细地址访问腾讯地图API,转换为经纬度
下一篇: 如何给html头部的title添加icon
Amy o-O
博客等级 码龄9年 19粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值