ios上传图片旋转问题解决方案(vant上传图片)

使用 van-uploader(vant 组件库上传图片组件)上传图片时,

部分 ios 机型,会偶发从手机上传图片后,图片预览中,图片旋转了 90 度的问题。

对于该问题,vant 官网中也给出了解决方案。
但官网中的方案适配的是单选情况下,上传图片时多选图片就会报错。

不论是哪种解决方案,都用到了 Compressor 类,先引入插件。

npm install compressorjs

一 vant 官网解决方案(单选)

首先在元素中加入 before-read 属性,传入 beforeRead 方法。

<van-uploader ... before-read="beforeRead" />

在 beforeRead 方法中使用 Compressor 类对 file 进行校正处理。

...
import Compressor from 'compressorjs';
...export default {...methods: {beforeRead(file) {console.log('开始修正')return new Promise((resolve) => {new Compressor(file, {success: resolve,error(err) {console.log(err.message);},});})}}
}

二 完美解决方案(单选+多选)

首先在还是元素中加入 before-read 属性,传入 beforeRead 方法。

<van-uploader ... before-read="beforeRead" />

在 beforeRead 方法中使用 Compressor 类对 file 进行校正处理,这里有一点变化。

...
import Compressor from 'compressorjs';
...export default {...methods: {beforeRead(file) {console.log('开始修正')return new Promise((resolve) => {if(!Array.isArray(file)) file = [file]const filePromiseArr = file.map(item => {return new Promise((res) => {new Compressor(item, {success: res,error(err) {console.log(err.message);},});});})Promise.all(filePromiseArr).then((res) => {console.log('修正完毕')resolve(res)})}}}
}

三 体验优化

这样就可以了,但是Compressor处理是需要时间的,这时候会导致,从手机中选中图片返回页面后,照片不会立刻出现在预览区域,而是会有几秒钟的空白,这时可以为页面添加toast优化体验。

Toase.loading({message: '',forbidClick: true,
});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/198528.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

编译原理:NFA转DFA(原理+完整代码+可视化实现)

NFA转换为DFA 【本文内容摘要】 什么是DFA通过子集构造法将NFA转换为DFA生成DFA的dot文件并且形成可视化。 如果本文对各位看官有用的话&#xff0c;请记得给一个免费的赞哦&#xff08;收藏也不错&#xff09;&#xff01; 文章目录 NFA转换为DFA一、什么是DFA二、NFA转换为…

【GO】protobuf在golang中的测试用例

上篇文章介绍了如何安装protobuf环境&#xff0c;文章链接如下 【Go】protobuf介绍及安装-CSDN博客 本节介绍protobuf在gRPC中具体如何使用&#xff0c;并编写测试用例 一、Protobuf是如何工作的 .proto文件是protobuf一个重要的文件&#xff0c;它定义了需要序列化数据的结…

企业微信配置可信域名

首先去申请一个域名&#xff0c;然后将域名绑定到有公网ip的云服务器上&#xff0c;绑定到具体的网站&#xff1b;然后再企业微信&#xff0c;管理后台&#xff0c;点击具体的应用&#xff0c;进【网页授权及JS-SDK】&#xff1b;点击底部的【申请校验域名】点击下载文件&#…

postgresql pg_hba.conf 配置详解

配置文件之pg_hba.conf介绍 该文件用于控制访问安全性&#xff0c;管理客户端对于PostgreSQL服务器的访问权限&#xff0c;内容包括&#xff1a;允许哪些用户连接到哪个数据库&#xff0c;允许哪些IP或者哪个网段的IP连接到本服务器&#xff0c;以及指定连接时使用的身份验证模…

第73讲:深入理解MySQL数据库InnoDB存储引擎:内存结构、磁盘结构与后台线程全面解析

文章目录 1.InnoDB存储引擎的架构2.InnoDB存储引擎的内存结构2.1.Buffer Pool缓冲池2.2.Change Buffer更改缓冲区2.3.自适应Hash索引2.4.Log Buffer日志缓冲区 3.InnoDB存储引擎的磁盘结构3.1.System Tablespace系统表空间3.2.File-Per-Table Tablespaces每个表都有单独的表空间…

ES6箭头函数和js普通函数的区别整理

普通函数的this指向为&#xff1a;谁调用它this就指向谁&#xff0c;this被不同对象调用是会变的 箭头函数的this指向为&#xff1a;声明该箭头函数时&#xff0c;外层第一个普通函数的this指向谁就固定为谁&#xff0c;不会改变 function foo() {console.log(this)}const ob…

红警For Mac(RAM芯片可玩)

1、文件损坏解决版本&#xff01; 执行以下命令&#xff0c;&#xff08;注意&#xff1a;命令2应用路径根据实际情况修改&#xff09; sudo spctl --master-disable sudo xattr -r -d com.apple.quarantine /Applications/红警2尤里复仇M芯片.app2、新系统14&#xff0c;第一…

Oracle Flashback示例集锦

Flashback Table 本例参考Rewind a Table Using Oracle Flashback Table Flashback Table&#xff0c;Flashback Query和Flashback Drop的示例合集可参见这里 首先获得当前的时间&#xff0c;或当前的SCN&#xff0c;以便后续回退使用 -- 获取SCN法1 select DBMS_FLASHBACK.…

孩子都能学会的FPGA:第二十一课——用线性反馈移位寄存器实现伪随机序列

&#xff08;原创声明&#xff1a;该文是作者的原创&#xff0c;面向对象是FPGA入门者&#xff0c;后续会有进阶的高级教程。宗旨是让每个想做FPGA的人轻松入门&#xff0c;作者不光让大家知其然&#xff0c;还要让大家知其所以然&#xff01;每个工程作者都搭建了全自动化的仿…

腾讯云轻量应用服务器怎么使用宝塔面板?

腾讯云轻量应用服务器宝塔面板怎么用&#xff1f;轻量应用服务器如何安装宝塔面板&#xff1f;在镜像中选择宝塔Linux面板腾讯云专享版&#xff0c;在轻量服务器防火墙中开启8888端口号&#xff0c;然后远程连接到轻量服务器执行宝塔面板账号密码查询命令&#xff0c;最后登录和…

采集伪原创洗稿,实现文章创作的方法

各位写手小伙伴们&#xff0c;今天要和大家分享一些关于伪原创的方法和经验&#xff0c;希望这些建议能够在你们的写作之旅中派上用场。 首先我们需要明确一下&#xff0c;伪原创并不是鼓励抄袭&#xff0c;而是一种在保留原文核心思想的同时&#xff0c;通过巧妙的方式改写&a…

Qt应用开发(Quick篇)——布局类与布局模块

一、前言 实际 应用中&#xff0c;布局是常用的功能&#xff0c;布局最直观的就是提供空间使用率&#xff0c;改善空间的流动和模块之间的重叠&#xff0c;让界面更加的美观。 二、布局类Layout 2.1 介绍 将Layout类型的对象附加到布局的子元素上&#xff0c;提供有关该项的特…

在AWS Lambda上部署标准FFmpeg工具——自定义层的方案

大纲 1 确定Lambda运行时环境1.1 Lambda系统、镜像、内核版本1.2 运行时1.2.1 Python1.2.2 Java 2 打包FFmpeg3 创建Lambda的Layer4 测试4.1 创建Lambda函数4.2 附加FFmpeg层4.3 添加测试代码4.4 运行测试 参考文献 FFmpeg被广泛应用于音/视频流处理领域。对于简单的需求&#…

阿里云Arthas使用——在日志没有输出异常情况下,如何进行线上bug定位 stack命令 和 trace命令

前言 Arthas 是一款线上监控诊断产品&#xff0c;通过全局视角实时查看应用 load、内存、gc、线程的状态信息&#xff0c;并能在不修改应用代码的情况下&#xff0c;对业务问题进行诊断&#xff0c;包括查看方法调用的出入参、异常&#xff0c;监测方法执行耗时&#xff0c;类…

FreeRTOS-Plus-CLI移植

FreeRTOS-Plus-CLI移植 Fang XS.1452512966qq.com如果有错误&#xff0c;希望被指出&#xff0c;学习技术的路难免会磕磕绊绊量的积累引起质的变化 介绍 FreeRTOS-Plus-CLI是FreeRTOS的组件之一。FreeRTOS-Plus-CLI提供了一种简单、小巧、可扩展且RAM高效的启用方法方便Free…

JS的监听事件

在JavaScript中&#xff0c;你可以使用监听器来捕获和处理不同类型的事件。通过添加事件监听器&#xff0c;你可以指定当特定事件发生时要执行的函数。 以下是几种常见的监听事件的方法&#xff1a; 1. addEventListener()&#xff1a;用于在目标元素上添加事件监听器。它接受…

解决 IIS HTTP 403 错误问题

最近上传附件 IIS 总是返回 HTTP 403 错误,在踩了很多配置的坑之后,终于把问题解决了,于是特意写了本篇文章。 虽然网络上的文章不少,大都写的没错,但是他们没有很清晰的把问题描述清楚,导致一些新手在看这些文章跟着处理问题的时候难免会踩坑,于是我就以我踩坑的经验写…

分享67个节日PPT,总有一款适合您

分享67个节日PPT&#xff0c;总有一款适合您 67个节日PPT下载链接&#xff1a;https://pan.baidu.com/s/1oU-UUCV_69e8Gp5Y6zrzVA?pwd6666 提取码&#xff1a;6666 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不易…

使用Python发送HTTP请求的最佳实践:让你的代码锐利如刀!

在当今的数字化时代&#xff0c;使用Python发送HTTP请求已经成为了许多开发人员的日常任务。无论是进行API交互、网页爬取&#xff0c;还是构建网络服务&#xff0c;掌握Python的HTTP请求技巧都至关重要。但是&#xff0c;要想在竞争激烈的编程领域中脱颖而出&#xff0c;你需要…

python模块 — json

1、什么是JSON&#xff1f; JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式。JSON由键值对构成&#xff0c;键和值之间使用冒号分隔&#xff0c;键值对之间使用逗号分隔&#xff0c;并且整个结构包含在花括号中。 不同编程语言都提供了处…