首页 > 其他分享 >前端图片压缩与上传

前端图片压缩与上传

时间:2022-09-01 10:55:58浏览次数:65  
标签:formData console 压缩 oss self file 上传 前端 append

安装 npm install image-compressor.js // 压缩js importImageCompressorfrom'image-compressor.js'   // 上传图片   asyncPostUpload (previewUrl, file, oss, index=-1) {     letfiles = awaitthis.compressorImage(file.file)     constself = this.cur;     constext = file.file.type.split('/')[1];     // console.log(file, ext, oss, 111);     letrandomNumber = self.getId();     constformData = newFormData();     formData.append('name', file.file.name);     formData.append('key', oss.dir + randomNumber + file.file.name);     formData.append('policy', oss.policy);     formData.append('OSSAccessKeyId', oss.accessid);     formData.append('signature', oss.signature);     formData.append('file', files);     self.$post(oss.host, formData, (res) => {       console.log(res, '返回值')       if (res.code < 0) {         if (index > -1) {           self.fileList.splice(index, 1)         }         file.status = 'failed'         file.message = '上传失败重新上传'         returnfalse       }     letcompleteval = ((res.loaded / res.total).toFixed(1)) * 100 || 0     file.status = 'uploading'     file.message = `${completeval} /100`     if (completeval === 100) {       file.status = '1'       file.message = ''       letimgUrl = `${previewUrl}/${oss.dir}${randomNumber}${file.file.name}`;       if (self.socketFileList.indexOf(imgUrl) < 0)       self.socketFileList.push(imgUrl)       console.log(self.fileList, self.socketFileList, 666)     }     // if (self.fileList.length === self.socketFileList.length)       // self.homeVM.uploadPicture(self.socketFileList);     })   }   // 文件压缩   compressorImage (file) {     returnnewPromise ((resolve, reject) => {       newImageCompressor(file, {         quality:.6,  // 压缩比例 (0,1]         maxWidth:1020,         maxHeight:2000,         success(result){           console.log('压缩前', (file.size/1024), '压缩后', (result.size/1024))           console.log('实际压缩率', ((file.size - result.size)/file.size * 100).toFixed(2) + '%');           resolve(result)         },         error (e) {           reject(e)         }         })     })   }                  

标签:formData,console,压缩,oss,self,file,上传,前端,append
From: https://www.cnblogs.com/tirybk/p/16645715.html

相关文章

  • HTML 纯前端使用数据库
    纯前端使用前端数据库。案例1<html><head><metacharset="utf-8"><script>var数据表=null;//4个参数分别是数据库名,版本号,数据库的描述,数据库大小var数据库......
  • 前端高频面试题(六)(附答案)
    如何优化动画?对于如何优化动画,我们知道,一般情况下,动画需要频繁的操作DOM,就就会导致页面的性能问题,我们可以将动画的position属性设置为absolute或者fixed,将动画脱离文档流......
  • vue前端解析Excel表格数据
    引入插件npminstallxlsx--save在组件中使用<template><divid="app"><h3>{{message}}</h3><el-uploadactionaccept=".xlsx,.xls":auto-upload="fa......
  • 前端安全-常见攻击手段及预防措施
    原文链接:https://www.cnblogs.com/yalong/p/16638754.html常见攻击手段如下:XSSCrossSiteScripting跨站脚本攻击,直接简写就是CSS,为了跟样式的CSS做区分,所以称为X......
  • 构建网站:前端与后端
    构建网站:前端与后端你需要知道的网站的出现无疑为万维网上的数据和信息的分类、组织和可访问性带来了便利,并且毫无疑问是数字资产。当您在浏览器上单击网站的链接或域地......
  • 前端深拷贝和浅拷贝
    在前端攻城狮的工作实际应用中,有很多情况下在处理数据的时候,会用到数据的深拷贝和浅拷贝例如:vue中数据是双向绑定的,页面显示依赖于从后台获取到的数据,但要将这个数据当做参......
  • SpringMVC 02: SpringMVC响应get和post请求 + 5种获取前端数据的方式
    响应get和post请求SpringMVC中使用@RequestMapping注解完成对get请求和post请求的响应项目结构和配置文件与SpringMVC博客集中的"SpringMVC01"保持一致在webapp/......
  • 前端——CSS
    CSS 指的是层叠样式表 (Cascading Style Sheets)述了如何在屏幕、纸张或其他媒体上显示HTML元素节省了大量工作。它可以同时控制多张网页的布局 CSS语法 C......
  • 【前端】在浏览器控制台,直接发Ajax请求
    我们在日常的开发的过程中,经常需要前端测试发送请求测试一些数据。但是由于一些session,cookie的存在,我们无法在postman上创建一些会话。那么这样,我们就可以在浏览器上直接......
  • 前端也该刷点算法题——双指针解“链表”题也太香了叭!
    双指针解“链表”题也太香了叭!同步双指针1查找链表中倒数第k个节点剑指Offer22.链表中倒数第k个节点思路:假设链表的长度为n,不难得出倒数第k个节点即为整数第n+......