热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

js实现图片上传以及获取图片宽高、大小获属性

前言:作为前端开发人员,避免不了上传一些文件和图片,那么什么格式需要前端后协商,同时考虑实施性,能否最有效和最

前言:作为前端开发人员,避免不了上传一些文件和图片,那么什么格式需要前端后协商,同时考虑实施性,能否最有效和最合适取决于格式。自己总结了一下,如果错误欢迎指正!



文件图片上传

1、利用FormData图片/文件上传-----以文件的形式上传


//上传单个文件
upLoadFile(event) {
let file = event.target.files;
let _this = this
let formData = new FormData();
​ formData.append('file', file[0]);//如果是图片 formData.append('image', file[0]);//这里的image只是类似对象属性名称一样,看接口需要什么放什么,但是图片也是一个文件,以文件的形式上传
//上传多个文件
upLoadFile(event) {
let file = event.target.files;
let _this = this
let formData = new FormData();
for (let i = 0; i <= file.length - 1; i++) {
​ formData.append(&#39;files&#39;, file[i]);//如果是图片 formData.append(&#39;images&#39;, file[i]);
}

在这里插入图片描述

如图所示,图片以文件的形式上传(binary)(其他参数我没有在代码中体现)

<input type="file" class="upload_inp" @change="fileupload($event)" />fileupload(event){let file = event.target.files[0];let formData = new FormData();formData.append("files", file);formData.append("Id", this.Id);formData.append("name", this.name);this.$axios.post(`/xxxxx/aaaaa/bbbbb`,formData,//{// headers: {// "Content-Type": "multipart/form-data"// },//}//这里请求头加不加看自己情况,浏览器默认是有的,但是特殊情况也不是没有).then(res => {this.getList();});}

这样id和name和文件一起传给后端了

2、图片上传--------以base64格式上传

upLoadImg(e) {
let _this = this
let reader = new FileReader();
let file = e.target.files[0];
if (file) {
if (file.size > 102400) {//直接拿到文件的大小(图片也是文件)
alert("请上传100KB以下的照片")
} else {
​ reader.readAsDataURL(file);//解析文件以base64的形式
​ reader.onload = function (e) {
​ _this.thumbnail = reader.result //base64格式
}
}
}
},

3、图片上传---------以二进制的形式上传

upLoadImg(e) {let file = this.files[0];let reader = new FileReader();reader.readAsArrayBuffer(file);//按照字节读取文件并存储至二进制缓存区reader.onload = function (e) {let result = e.target.result;let blob = new Blob([result]);//存储二进制数据// let url = URL.createObjectURL(blob);//生成本地图片地址用于图片预览}
}

在这里插入图片描述


42、文件/图片的大小

upLoadImg(e) {let file = e.target.files[0];//单个文件处理if (file) {let size=file.size//字节单位}}

在这里插入图片描述
在这里插入图片描述
文件的大小获取,主要是前端自定义限制上传图片或者文件的大小,做出提醒!


43、图片的宽高获取

// 图片地址
var img_url =13643608813441.jpg&#39;
// 创建对象
var img = new Image()
// 改变图片的src
img.src = img_url
// 打印
alert(&#39;width:&#39;+img.width+&#39;,height:&#39;+img.height);

对于特殊要求,比如宽高必须是.2的幂次方,这样就可以拿到宽高做一个判断提醒限制!


推荐阅读
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 本文介绍了在Vue项目中如何结合Element UI解决连续上传多张图片及图片编辑的问题。作者强调了在编码前要明确需求和所需要的结果,并详细描述了自己的代码实现过程。 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
author-avatar
晰mine
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有