使用 XHbuilder 编辑器 uniapp开发 app 中使用手机本相机可直接拍摄照片进行上传,也可以选择相册进行上传

学习目标:

  • 使用 XHbuilder 编辑器 uniapp开发 app 中使用手机本相机可直接拍摄照片进行上传,也可以选择相册进行上传

学习内容:

相关内容

  1. 上传图片
  2. 上传时调用的相关方法
  3. 配置的相关模块
  4. 需要配置的相关权限

知识小结:

总结:

  • 1、上传图片
<view class="uni-form-item"><view class="title">主图</view><view class="content"><view class="grid col-4 grid-square flex-sub"><view class="bg-img" v-for="(item,index) in imageList" :key="index" @tap="ViewMainImage" :data-url="baseUrl + imageList[index].url"><image :src="baseUrl + item.url" mode="aspectFill"></image><view class="cu-tag bg-red" @tap.stop="DelMainImg" :data-index="index"><text class='cuIcon-close'></text></view></view><view class="solids" @tap="ChooseMainImage" v-if="imageList.length<1"><text class='cuIcon-camera'></text></view></view></view></view>
  • 2、调用的方法
     //选择图片ChooseMainImage() {uni.chooseImage({count: 10, //默认9sizeType: ['original', 'compressed'],  //可以指定是原图还是压缩图,默认二者都有sourceType: ['album','camera'],   //从相册选择,也可以使用相机直接拍照上传success: (res) => {var imagePathArr =res.tempFilePathsuni.showToast({title: '上传进度:0/' + imagePathArr.length,icon: 'none',mask: false});var remoteIndexStart = this.imageList.length - imagePathArr.length	var promiseWorkList = []var keyname = (this.fileKeyName ? this.fileKeyName : 'file')var completeImages = 0for (let i = 0; i < imagePathArr.length; i++) {promiseWorkList.push(new Promise((resolve, reject) => {let header = {"Mema-Token":this.$api.config.header["Mema-Token"]};let remoteUrlIndex = remoteIndexStart + i;uni.uploadFile({url: this.imageServerUrl,// methods: 'POST',// fileType: 'image',header: header,formData: this.uploadDataMain,filePath: imagePathArr[i],name: keyname,success: function(res) {if (res.statusCode === 200) {var jsonData = JSON.parse(res.data);if(jsonData.code == 0){completeImages++uni.showToast({title: '上传进度:' + completeImages + '/' + imagePathArr.length,icon: 'none',mask: false,duration: 500});resolve(jsonData.data)}else{uni.showToast({icon: 'none',position: 'bottom',title: jsonData.msg});}} else {reject('fail to upload image:' + remoteUrlIndex)}},fail: function(res) {reject('fail to upload image:' + remoteUrlIndex)}})}))}Promise.all(promiseWorkList).then((result) => {for (let i = 0; i < result.length; i++) {// result[i].url = this.$api.config.baseUrl + result[i].urlthis.imageList.push(result[i])}})}});},
	//查看主图ViewMainImage(e) {var images = [];for (let i = 0; i < this.imageList.length; i++) {images.push(this.$api.config.baseUrl + this.imageList[i].url)}uni.previewImage({urls: images,current: e.currentTarget.dataset.url});},
	//删除主图DelMainImg(e) {var imgObj = this.imageList[e.currentTarget.dataset.index]uni.showModal({title: '删除图片',content: '确定要删除吗?',cancelText: '再看看',confirmText: '确认删除',success: res => {if (res.confirm) {this.pic=""this.imageList = []}}})},
  • 3、APP 模块配置
    在 app 模块配置中 ,需勾选 Camera & Gallery(相机和相册) 模块配置
    在这里插入图片描述

  • 4、App 权限配置
    使用 uni-app 相机拍摄照片 需开启相应的权限配置
    1、开启相机权限

(1) <uses-feature android:name=“android.hardware.camera” />
(2) <uses-feature android:name=“android.hardware.camera.autofocus” />

2、 开启闪光灯权限

<uses-permission android:name=“android.permission.FLASHLIGHT”/>

3、开启摄像头权限

<uses-permission android:name=“android.permission.CAMERA” />

在配置勾选框中,勾选相对应的权限配置
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

最大连续1的个数 ||| ---- 滑动窗口

题目链接 题目: 分析: 题目中说可以将最多k个0翻转成1, 如果我们真的这样算就会十分麻烦, 所以我们可以换一种思路: 找到一个最长的子数组, 最多有k个0解法一: 暴力解法: 找到所有的最多有k个0的子字符串, 返回最长的解法二: 找到最长的子数组, 我们可以想到"滑动窗口算…

【win10相关】更新后出现未连接到互联网的问题及解决

问题背景 在win10更新完系统之后&#xff0c;第二天电脑开机后&#xff0c;发现无法上网&#xff0c;尝试打开百度&#xff0c;但是出现以下图片&#xff1a; 经过检查&#xff0c;发现手机是可以上网的&#xff0c;说明网络本身并没有问题&#xff0c;对防火墙进行了一些设置…

C++/BOOST filesystem fs::directory_iterator一个滑稽的错误

错误来源于&#xff0c;用 fs::directory_iterator iter(folderPath), end; 然后for循环 for (; iter ! iter_end; iter) {} 最开始没问题&#xff0c;后来说加个进度条&#xff0c;统计一下所有文件数量&#xff0c;用了std::distance&#xff0c; int totalFiles std::…

XYCTF2024 部分w

RE 1. 聪明的信使 基础爆破 #include<stdio.h> #include<string.h> int main() {char enc[] "oujp{H0d_TwXf_Lahyc0_14_e3ah_Rvy0acwc!}";char flag[41] {0};int i, j;for (i 0; i < strlen(enc); i){for (j 33; j < 127; j){if ((j < 9…

Skill Check: Fundamentals of Large Language Models

Skill Check: Fundamentals of Large Language Models 完结&#xff01;

Vue项目中引入高德地图步骤详解,附示例代码

vue中如何使用高德地图&#xff0c;下面为您详解。 步骤一&#xff1a;安装高德地图的JavaScript API 在Vue项目的根目录下打开终端&#xff0c;执行以下命令安装高德地图的JavaScript API&#xff1a; npm install amap/amap-jsapi-loader --save 步骤二&#xff1a;创建地…

什么?你还不懂文件系统和软硬链接?

文章目录 序言认识磁盘磁盘在系统中的管理熟悉磁盘各个分区 软硬链接软链接硬链接 序言 首先熟悉一下一些专有名词(了解即可,但必须有一个概念认识) 固态:SSD,笔记本中常装的,台式机中也可以装,常见的对应接口M.2和SATA接口 磁盘:90年代常用的数据存储设备,或是现在企业级数据…

IPv4 NAT(含Cisco配置)

IPv4 NAT&#xff08;含Cisco配置&#xff09; IPv4私有空间地址 类RFC 1918 内部地址范围前缀A10.0.0.0 - 10.255.255.25510.0.0.0/8B172.16.0.0 - 172.31.255.255172.16.0.0/12C192.168.0.0 - 192.168.255.255192.168.0.0/16 这些私有地址可在企业或站点内使用&#xff0c…

学习Python的第三天

学习Python的第三天&#xff0c;我开始深入Python的基本语法和特性&#xff0c;并通过编写一些简单的代码来加深理解。以下是我今天学习的一些代码案例&#xff1a; 1. 函数定义与调用 # 定义一个函数&#xff0c;计算两个数的和 def add_numbers(a, b):return a b# 调用函数…

从零开始的软件测试学习之旅(四)web项目工作流程介绍

WEB手工项目 项目介绍项目技术分析项目学习准备工作如何快速熟悉项目举例熟悉TPshop项目 总体系统项目介绍项目与数据库测试流程什么是软件需求需求评审 测试计划测试方案测试计划和测试方案的区别 项目介绍 满足经典三层架构:前端 后端 数据库 前端:运行在用户端的浏览器和客…

同仁堂医养拟赴港上市,养老产业的盈利难题有了答案?

提及银发经济&#xff0c;大众可能最先想到的就是养老产业&#xff0c;在市场需求推动下&#xff0c;这一细分赛道的增长已势不可挡。单从入局者的积极性就可以把握到赛道前景之广阔。 天眼查专业版数据显示&#xff0c;截至目前&#xff0c;我国拥有养老相关企业36.2万家&…

线上办理离婚快速离婚,无需双方见面异地可办

现在离婚有两种方式 一种是协议离婚&#xff0c;双方都同意的情况下&#xff0c;可以去民政局协议离婚&#xff0c;有30天冷静期&#xff0c;冷静期过后需要双方再次去民政局办理离婚手续。 另一种是诉讼离婚&#xff0c;一方不同意离婚&#xff0c;可以选择诉讼离婚。可以全…

【PPT设计】颜色对比、渐变填充、简化框线、放大镜效果、渐变形状配图、线条的使用

目录 图表颜色对比、渐变填充、简化框线放大镜效果渐变形状配图 线条的使用区分标题与说明信息区分标题与正文,区分不同含义的内容**聚焦****引导****注解****装饰** 图表 颜色对比、渐变填充、简化框线 小米汽车正式亮相&#xff01;你们都在讨论价格&#xff0c;我全程只关…

手写一个民用Tomcat (08)

这次我们Tomcat 的改动是 指责分离&#xff0c;同时引入一个Wrapper封装 我们的Processor 是负责处理处理请求的任务 我们的Connector 是负责通信的 详细代码如下 public class JxdHttpConnector implements Runnable {int minProcessors 3;int maxProcessors 10;int c…

vue2多语言包i8n

1.下包(我是vue2) yarn add vue-i18n8.2.1 --save2.建多语言实例化文件 /* 多语言实例化文件*/ /* 1. 导入VueI18n和Vue 再去main.js中挂载插件*/ import Vue from vue // 引入Vue import VueI18n from vue-i18n // 引入国际化的包 // 2.引入cookie工具 import Cookie from …

wpf 按钮禁用样式

在WPF中&#xff0c;要为按钮创建一个禁用样式&#xff0c;需要在资源字典中定义一个Style&#xff0c;该样式将应用于Button控件的IsEnabled属性为False时的状态。 以下是一个简单的例子&#xff1a; <Style TargetType"Button" x:Key"NormalButtonStyle&…

虚良SEO的权重蜘蛛是真的吗?

权重蜘蛛&#xff0c;又称为搜索引擎蜘蛛或爬虫&#xff0c;是搜索引擎用来抓取和索引网页内容的重要工具。这些自动化程序在互联网上漫游&#xff0c;收集和分析信息&#xff0c;以帮助搜索引擎提供准确、相关和有用的搜索结果。权重蜘蛛的工作机制和特性对于理解搜索引擎优化…

jackson.dataformat.xml 反序列化 对象中包含泛型

重点&#xff1a; JacksonXmlProperty localName 指定本地名称 JacksonXmlRootElement localName 指定root的根路径的名称&#xff0c;默认值为类名 JsonIgnoreProperties(ignoreUnknown true) 这个注解写在类上&#xff0c;用来忽略在xml中有的属性但是在类中没有的情况 Jack…

边缘计算概述_5.边缘计算应用场景

1.智慧园区 智慧园区建设是利用新一代信息与通信技术来感知、监测、分析、控制、整合园区各个关键环节的资源&#xff0c;在此基础上实现对各种需求做出智慧的响应&#xff0c;使园区整体的运行具备自我组织、自我运行、自我优化的能力&#xff0c;为园区企业创建一个绿色、和谐…

python_django农产品物流信息服务系统6m344

Python 中存在众多的 Web 开发框架&#xff1a;Flask、Django、Tornado、Webpy、Web2py、Bottle、Pyramid、Zope2 等。近几年较为流行的&#xff0c;大概也就是 Flask 和 Django 了 Flask 是一个轻量级的 Web 框架&#xff0c;使用 Python 语言编写&#xff0c;较其他同类型框…