vue调用手机相机相册_详解Vue调用手机相机和相册以及上传

组件

x.png

%E6%B7%BB%E5%8A%A0%E5%9B%BE%E7%89%87.png

选中{{imgList.length}}张文件,共{{bytesToSize(this.size)}}

javaScript代码

export default {

name: "cameras-and-albums",

data(){

return{

imgList: [],

datas: new FormData(),

files:0,

size:0

}

},

methods:{

//调用相册&相机

fileClick() {

$('#upload_file').click();

},

//调用手机摄像头并拍照

getImage() {

let cmr = plus.camera.getCamera();

cmr.captureImage(function(p) {

plus.io.resolveLocalFileSystemURL(p, function(entry) {

compressImage(entry.toLocalURL(),entry.name);

}, function(e) {

plus.nativeUI.toast("读取拍照文件错误:" + e.message);

});

}, function(e) {

}, {

filter: 'image'

});

},

//从相册选择照片

galleryImgs() {

plus.gallery.pick(function(e) {

let name = e.substr(e.lastIndexOf('/') + 1);

compressImage(e,name);

}, function(e) {

}, {

filter: "image"

});

},

//点击事件,弹出选择摄像头和相册的选项

showActionSheet() {

let bts = [{

title: "拍照"

}, {

title: "从相册选择"

}];

plus.nativeUI.actionSheet({

cancel: "取消",

buttons: bts

},

function(e) {

if (e.index == 1) {

this.getImage();

} else if (e.index == 2) {

this.galleryImgs();

}

}

);

},

fileChange(el) {

this.files=$("#upload_file").get(0).files;

console.log(this.files.length);

for(let i=0;i

this.datas.append("file",this.files[i]);

}

this.show1=false;

console.log(typeof this.files);

console.log(this.files);

if (!el.target.files[0].size) return;

this.fileList(el.target);

el.target.value = ''

},

fileList(fileList) {

let files = fileList.files;

for (let i = 0; i < files.length; i++) {

//判断是否为文件夹

if (files[i].type != '') {

this.fileAdd(files[i]);

} else {

//文件夹处理

this.folders(fileList.items[i]);

}

}

},

//文件夹处理

folders(files) {

let _this = this;

//判断是否为原生file

if (files.kind) {

files = files.webkitGetAsEntry();

}

files.createReader().readEntries(function (file) {

for (let i = 0; i < file.length; i++) {

if (file[i].isFile) {

_this.foldersAdd(file[i]);

} else {

_this.folders(file[i]);

}

}

})

},

fileAdd(file) {

//总大小

this.size = this.size + file.size;

//判断是否为图片文件

if (file.type.indexOf('image') == -1) {

file.src = 'wenjian.png';

this.imgList.push({

file

});

} else {

let reader = new FileReader();

reader.vue = this;

reader.readAsDataURL(file);

reader.onload = function () {

file.src = this.result;

this.vue.imgList.push({

file

});

}

}

},

fileDel(index) {

this.size = this.size - this.imgList[index].file.size;//总大小

this.imgList.splice(index, 1);

},

bytesToSize(bytes) {

if (bytes === 0){

return '0 B';

}

let k = 1000, // or 1024

sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],

i = Math.floor(Math.log(bytes) / Math.log(k));

return (bytes / Math.pow(k, i)).toPrecision(3) + ' ' + sizes[i];

},

dragenter(el) {

el.stopPropagation();

el.preventDefault();

},

dragover(el) {

el.stopPropagation();

el.preventDefault();

},

drop(el) {

el.stopPropagation();

el.preventDefault();

this.fileList(el.dataTransfer);

},

shows(et,tx){

this.strut=et;

this.txt=tx;

},

handleClick(){

this.$store.commit('add')

},

},

}

以上所述是小编给大家介绍的Vue调用手机相机及上传详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

本文标题: 详解Vue调用手机相机和相册以及上传

本文地址: http://www.cppcns.com/wangluo/javascript/258284.html

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

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

相关文章

红旗linux mysql_恢复 - 红旗Linux案例精选:Amanda集中备份实例详细讲解_数据库技术_Linux公社-Linux系统门户网站...

五、恢复假定我们需要恢复cp3上一些丢失的数据&#xff0c;首先用amandabackup帐号登录cp2机器&#xff0c;创建/etc/amanda/amanda-client.conf文件&#xff0c;内容如下&#xff1a;## amanda.conf - sample Amanda client configuration file.## This file normally goes in…

linuxpip安装python包_Windows+Linux安装Python包管理工具pip

WindowsLinux安装Python包管理工具pipWindows安装Python包管理工具pippip是一个Python包管理工具&#xff0c;主要是用于安装PyPI上的软件包&#xff0c;可以替代easy_install工具。一、前期准备首先确认windows机器上面是否已经安装好了python。在cmd中输入python --version和…

mysql 深胡_Mysql胡说八道

mysql索引今天看了一些关于MySQL相关的东西&#xff0c;来做一些碎碎念&#xff0c;写这些可能只是觉得自己看东西老爱忘23333.先来看一组MySQL数据&#xff0c;如图我们要查看最后id11的数据&#xff0c;如果我们不加索引的话会怎样呢&#xff1f;他会一条一条的比对&#xff…

java public main_实例分析Java中public static void main(String args[])是什么意思

本文实例讲述了Java中public static void main(String args[])的来龙去脉。分享给大家供大家参考&#xff0c;具体如下&#xff1a;public static void main(String[] args)这绝对不是凭空想出来的&#xff0c;也不是没有道理的死规定&#xff0c;而是java程序执行的需要。jvm在…

java浏览文件夹_一个用java实现简单的文件浏览器

[java]代码库import java.awt.*;import java.awt.event.*;import java.net.URL;import javax.swing.*;//文件浏览器public class HTTPBrowserDemo extends JFrame {private static final long serialVersionUID -5794029080886644211L;JTextField jtfAddress; // 输入文件地址…

java奥运会安排赛程问题_记录奥运-当今五大Java记录框架之间的竞赛

java奥运会安排赛程问题开发人员&#xff1a;Takipi会告诉您何时新代码在生产中中断– Log4J vs SLF4J简单vs Logback vs Java Util日志记录vs LOG4J2 日志记录实际上是每个服务器端应用程序中古老且固有的部分。 这是应用程序以持久且可读的方式输出实时状态的主要方法。 某些…

为什么在子类中不重写超类的实例变量

当我们在父类和子类中创建一个具有相同名称的变量&#xff0c;并尝试使用持有子类对象的父类引用访问它时&#xff0c;我们会得到什么&#xff1f; 为了理解这一点&#xff0c;让我们考虑下面的示例&#xff0c;其中在Parent和Child类中声明一个具有相同名称的变量x 。 class…

cocos lua调用java_【Tech-Lua】Cocos-2dx-Lua调用java的小白教程(三)

上周五下班前&#xff0c;打包成功了。我很高兴&#xff0c;周六去踢场足球&#xff0c;周日去现场看了最后一分钟掉球的恒大&#xff0c;度过了一个愉快的周末。然后&#xff0c;噩梦的周一开始了。我再次打包&#xff0c;打算打包就安装&#xff0c;但结果是失败的。为何&…

github上java项目_GitHub上10,000个最受欢迎的Java项目-以下是他们使用的顶级库

github上java项目随着Java开发人员使用既成熟又高度发展的语言来工作&#xff0c;无论何时编写新代码&#xff0c;我们都将面临一个持续的困境–使用大家都在谈论的热门新技术&#xff0c;或者坚持使用久经考验的库&#xff1f; 由于Java应用程序的很大一部分是商业性质的&…

char java 回文_LeetCode刷题笔记(Java)---第1-18题

题目来自LeetCode文章目录全部章节1-18题19-40题41-60题61-80题81-100题101-120题121-140题1.两数之和2.两数相加3.无重复字符串的最长子串4.寻找两个有序数组的中位数5.最长回文子串6.Z 字形变换7.整数反转8.字符串转换整数 (atoi)9.回文数10.正则表达式匹配11.盛最多水的容器…

使用PostgreSQL使用Spring Boot和JPA构建基本应用

“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕&#xff1f; 尝试使用Okta API进行托管身份验证&#xff0c;授权和多因素身份验证。 每个不平凡的应用程序都需要一种保存和更新数据的方法&#xff1a;可通过HTTP访问的资…

通过示例了解Apache Ignite Baseline拓扑

点燃基准拓扑或BLT表示群集中的一组服务器节点&#xff0c;这些服务器节点将数据持久存储在磁盘上。 其中&#xff0c;N1-2和N5服务器节点是具有本机持久性的Ignite集群的成员&#xff0c;这些集群使数据能够持久存储在磁盘上。 N3-4和N6服务器节点是Ignite群集的成员&#x…

Spring Boot集成测试中@ContextConfiguration和@SpringApplicationConfiguration之间的区别

即使同时使用ContextConfiguration和SpringApplicationConfiguration批注以及SpringJUnit4ClassRunner来指定如何加载Spring应用程序上下文&#xff0c;它们之间也存在细微的差异。 尽管ContextConfiguration在加载应用程序上下文方面表现出色&#xff0c;但没有充分利用Spring…

vert.x_使用vert.x 2.0,RxJava和mongoDB创建simpe RESTful服务

vert.x中断了将近半年后发表了一篇新文章。 在本文中&#xff0c;我们将快速了解如何开始使用vert.x&#xff0c;更有趣的是&#xff0c;如何使用RxJava简化异步系统的编程。 我们将涵盖以下主题&#xff1a; 使用Maven创建一个空的vert.x项目 导入IntelliJ并创建一个简单的H…

如何通过Rultor将Maven工件部署到CloudRepo

在我以前的文章中 &#xff0c;我描述了如何在Amazon S3中设置私有Maven存储库并通过Rultor进行部署。 如果您熟悉管理Amazon Web Services&#xff08;AWS&#xff09;&#xff0c; S3和AWS Identity and Access Management&#xff08;IAM&#xff09;的话&#xff0c;这是一…

java里面自行车的属性_11、Java基础知识

1、安装jdk&#xff0c;配置环境变量2、public class HelloWorld{publicstatic void main(String[] args){System.out.println(‘HelloWorld’);}}3、编译过程&#xff1a;通过javac编译java文件&#xff0c;生成.class文件&#xff0c;使用java命令运行class文件&#xff0c;注…

布线问题分支限界法java_大型布线:Java云应用程序缺少的技术

布线问题分支限界法java您是否曾经想过&#xff0c;为什么大多数Java框架中的依赖项注入仅用于本地进程内服务而不是分布式服务&#xff1f; 我最近在2013年EMC世界大会上遇到了Paul Maritz的主题演讲 &#xff08;跳至第32分钟&#xff09;&#xff0c;这使我在云平台的背景下…

Spring Boot微服务,Docker和Kubernetes研讨会–第2部分

在上一篇文章中&#xff0c;我们使用SpringBoot和Docker创建了第一个微服务“ ProductService”。 在这一部分中&#xff0c;我们将详细介绍如何使用Spring Cloud&#xff0c;netflix库&#xff0c;API网关来管理多个微服务。 假设对于我们的订单管理系统&#xff0c;最小关系…

jboss5.1安全性配置_使用Java EE安全性和JBoss AS 7.x保护JSF应用程序的安全

jboss5.1安全性配置企业应用程序的一个常见要求是在登录页面后面保护所有JSF页面。 有时&#xff0c;您甚至希望在应用程序内部具有保护区&#xff0c;只有拥有特定角色的用户才能访问这些保护区。 Java EE标准附带了实现受某些安全性约束保护的Web应用程序所需的所有方法。 在…

分布式事务 camel_使用Camel在Amazon上构建分布式工作流应用程序

分布式事务 camel带有SNS-SQS的管道 工作流由以动态条件确定的特定顺序执行的独立任务组成。 工作流通常代表业务流程&#xff0c;例如电子商务商店中的订单处理步骤。 Amazon Web Services提供了用于构建分布式和可伸缩工作流应用程序的各种工具。 构建此类应用程序的一种方法…