
发表日期: 2021-06-03 14:23:40 浏览次数:104
乐山400电话申请开通【乐山企业网站建设】乐山微信公众号小程序开发运营价格、乐山微信公众号APP软件客户端设计运营、乐山网页页面设计公司费用、乐山公司网站制作方案流程改版维护大概需要多少钱

乐山,四川省辖地级市,古称嘉州,有“海棠香国”的美誉。位于四川省中部,四川盆地的西南部,地势西南高,东北低,属中亚热带气候带。乐山是四川省重要工业城市、成都经济区南部区域中心城市、重要枢纽城市、成渝城市群重要交通节点和港口城市。成昆铁路、成贵高铁贯穿全境。 [1] 乐山三江汇合。大渡河,青衣江在乐山大佛脚下汇入岷江。 [2]
乐山是国家历史文化名城,国家首批对外开放城市、全国绿化模范城市、中国优秀旅游城市、国家园林城市、全国卫生城市。乐山有世界级遗产三处—世界自然与文化遗产峨眉山和乐山大佛、世界灌溉工程遗产东风堰,国家4A级景区以上景区15处,国家A级景区35处。 [3]
截至2018年底,乐山市辖4区6县,代管1个县级市,总面积12720.03平方公里。2018年底户籍人口350.68万人,常住人口326.7万。 [3] 2020年乐山市地区生产总值2003.43亿元。 [50]
2019年7月,被评为国家知识产权试点城市。 [5] 2020年10月20日,入选全国双拥模范城(县)名单。 [6]
该组件上传图片的大致思路:
利用H5的FileReader对象将上传的图片转成base64格式
利用canvas的drawImage方法重绘上传的图片(注:drawimage是一个异步方法,需要在图片读取成功后在进行重绘,否则可能会压缩不成功)
在利用canvas的toDataURL方法将图片压缩
在将压缩后的base64编码图片转成blob对象
创建一个formData对象,将blob对象append进去
图片上传时需设置请求为 { "Content-Type": "multipart/form-data" }
将formData对象上传到后台
<div class="upload"> <!— 图片展示 —> <div class="cha" v-show="(imgUrl)"> <!— 删除icon —> <div class="del"> <i class="el-icon-delete" @click="delImg"></i> </div> <img :src="imgUrl"> <!— 放大icon —> </div> <div class="layer"> <i @click="isEnlargeImage = true" class="el-icon-view"></i> </div></div> <!— 图片上传控件 —><div class="load" v-show="(!imgUrl)"> <input type="file" name="" id="form" @change="uploadIMG"></div> <!— 图片预览弹框 —><el-dialog :visible.sync="isEnlargeImage" size="large" :append-to-body="true" top="8%" width="60%"> <img @click="isEnlargeImage = false" style="width:100%;" :src="imgUrl"></el-dialog>
<script>export default { props: ["uploadUrl"], data() { return { picavalue: "", imgUrl: null, isEnlargeImage: false }; }, methods:{ uploadIMG(e) { let files = e.target.files || e.dataTransfer.files; if (!files.length) return; this.picavalue = files[0]; console.log(this.picavalue.size / 1024); if (this.picavalue.size / 1024 > 5000) { this.$message({ message: "图片过大不支持上传", type: "warning" }); } else { this.imgPreview(this.picavalue); } }, //获取图片 imgPreview(file, callback) { let self = this; //判断支不支持FileReader if (!file || !window.FileReader) return; if (/^image/.test(file.type)) { //创建一个reader let reader = new FileReader(); //将图片转成base64格式 reader.readAsDataURL(file); //读取成功后的回调 reader.onloadend = function() { let result = this.result; let img = new Image(); img.src = result; console.log("**未压缩前的图片大小**"); console.log(result.length); img.onload = function() { let data = self.compress(img); self.imgUrl = result; let blob = self.dataURItoBlob(data); console.log("*base64转blob对象**"); console.log(blob); var formData = new FormData(); formData.append("file", blob); console.log("**将blob对象转成formData对象**"); console.log(formData.get("file")); let config = { headers: { "Content-Type": "multipart/form-data" } }; // 发送请求; self.axios.post(self.uploadUrl.url, formData, config).then(res => { // console.log(res); // console.log(res.data.data.resultftphost) // console.log(res.data.data.resulturl) // this.$emit('') if (res.data.code == 200) { self.$emit("getImgsrc", res.data.data.resultftphost, res.data.data.resulturl ); } else { self.$message({ message: "图片上传失败,请重试", type: "warning" }); } }); }; }; }, // 压缩图片 compress(img) { let canvas = document.createElement("canvas"); let ctx = canvas.getContext("2d"); let initSize = img.src.length; let width = img.width; let height = img.height; canvas.width = width; canvas.height = height; // 铺底色 ctx.fillStyle = "#fff"; ctx.fillRect(0, 0, canvas.width, canvas.height); ctx.drawImage(img, 0, 0, width, height); //进行最小压缩 let ndata = canvas.toDataURL("image/jpeg", 0.1); // console.log("*压缩后的图片大小*"); // console.log(ndata) // console.log(ndata.length); return ndata; }, // base64转成bolb对象 dataURItoBlob(base64Data) { var byteString; if (base64Data.split(",")[0].indexOf("base64") >= 0) byteString = atob(base64Data.split(",")[1]); else byteString = unescape(base64Data.split(",")[1]); var mimeString = base64Data.split(",")[0].split(":")[1].split(";")[0]; var ia = new Uint8Array(byteString.length); for (var i = 0; i < byteString.length; i++) { ia[i] = byteString.charCodeAt(i); } return new Blob([ia], { type: mimeString }); }, //删除事件 delImg() { this.imgUrl = null; } }};.upload { position: relative; width: 200px; height: 220px; // 图片展示 .cha { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border-radius: 6px; border: 1px dashed #cccccc; overflow: hidden; box-sizing: border-box; .layer { position: absolute; top: 0; left: 0; z-index: 2; width: 100%; height: 200px; background-color: rgba(0, 0, 0, 0.3); text-align: center; line-height: 200px; opacity: 0; color: #ffffff; border: none; } .del { position: absolute; bottom: 0; right: 0; opacity: 0; z-index: 2; border: none; } img { position: absolute; top: 0; left: 0; width: 100%; height: 200px; border: none; } } //鼠标放上时显示删除和放大 .cha:hover .layer, .cha:hover .del { opacity: 1; } //点击上传 .load { position: absolute; top: 0; left: 0; width: 200px; height: 200px; border: 1px dashed #cccccc; input { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; } } .load::before { content: ""; position: absolute; top: 50%; left: 50%; transform: translateY(-50%); width: 1px; height: 80%; border-right: 1px solid #cccccc; } .load:after { content: ""; position: absolute; top: 50%; left: 50%; transform: translateX(-50%); width: 80%; height: 1px; border-top: 1px solid #cccccc; }}乐山400电话申请开通【乐山企业网站建设】乐山微信公众号小程序开发运营价格、乐山微信公众号APP软件客户端设计运营、乐山网页页面设计公司费用、乐山公司网站制作方案流程改版维护大概需要多少钱
服务热线
顶部
备案号: 苏ICP备11067224号
CopyRight © 2011 书生商友信息科技 All Right Reserved
24小时服务热线:400-111-6878 E-MAIL:1120768800@qq.com QQ:1120768800
网址: http://www.768800.com 网站建设:上往建站
关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|
企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|
400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|
欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系
服务热线:400-111-6878