用input type=file调取手机照相机以及相册选择照片上传

news/2024/5/19 1:27:13 标签: web app, 手机, 硬件

最近由于在写一个车贷的webapp项目,其中要求调取手机照相机以及手机相册来获取照片,而我之前一直是用cordova等打包工具调取手机硬件、于是也到网上找了下解决方案。其中h5提供的type="file"属性是一个相当简便且有效的方法。

<input type="file">除了可以选择照片,默认情况下是可以选择文档的

为了防止用户误选文档我们可以给 input 标签添加 accept="image/*" 属性。

此外,大多数情况我们都需要一次性选择多张照片,这个H5同样给出了简洁的解决方案

我们只需在标签里面添加一个 mutiple="mutiple" 属性,

不过这里有一个梗,就是当在pc浏览器以及ios浏览器以及微信端使用时是可以正常选择多张照片的,但是在绝大多数安卓机上只能一次性选择一张图片。

这限于目前安卓系统对h5标签等效果的优化、目前并没有什么好的解决方案。

此外,如果需要调取照相机也只需添加 capture=“camera” 属性,简单快捷!

最终我们的 input 元素将是下面的写法:

<input type="file" accept="image/*" mutiple="mutiple" capture="camera" />

这样不仅能防止误选文档,而且可以一次选择多张照片,还能调取手机相机。

经过对 input 的这些属性了解后、感觉这些东西还是挺方便的(虽然效果有限)。

因此自己将一些主要代码封装成了一个jQuery插件,代码不多,理解起来也没啥难度,有更多的需求的童鞋可以自己添加额外的代码进行优化,github地址:https://github.com/SailorCai/cslPlugin

另外由于微信端和普通浏览器存在差别(微信上的input添加capture属性时是会同时提供相册和照相机入口,但是浏览器上会直接进入拍照)因此在我的这个插件中对微信和浏览器做了相应的兼容处理,原理也相当简单。

 

 

插件下载地址:https://github.com/SailorCai/cslPlugin.git


http://www.niftyadmin.cn/n/1253065.html

相关文章

在Ubuntu 11.10中给gedit增加自定义Color Scheme

一直不适应Vim等神器&#xff0c;只好把玩Gedit。 Ubuntu 11.10发布后&#xff0c;使用Gnome3&#xff0c;Gedit也升级到3.2版本。配置Gedit也发生一些&#xff0c;比如在Ubuntu 11.04及之前版本中&#xff0c;Color Scheme是放在 ~/.gnome2/gedit/styles 目录中的。而在Ubuntu…

用div模拟文本域实现高度自动撑开以及相关问题的解决方法

前段时间项目里面用到了一个高度随着内容自动撑开的文本域效果&#xff0c;这一点传统的textarea标签是满足不了的&#xff0c;而我们要做的只是在div中加一个contenteditable"true"的属性&#xff0c;以下是现实效果。但是接下来就遇到了问题&#xff0c;当你在模拟…

关于jquery的click()和trigger(‘click‘)方法的一点问题

在原生js中如果要模拟事件其实比较麻烦的事情&#xff0c;因为要考虑到各个浏览器对dom标准的兼容&#xff0c;同时还要进行多个步骤&#xff08;创建event对象、初始化、正式触发等步骤&#xff09;。不过jquery就有一个非常简单好用的click()或者trigger(click)方法来模拟点击…

前端通过spark-md5.js计算本地文件md5

背景&#xff1a;说到本人第一次使用spark-md5.js还是差不多一年以前的时候了&#xff0c;当时后台老大说要搞一个文件分片上传的功能。我当时就心想&#xff1a;what&#xff1f;啥是文件分片上传&#xff0c;完全没听过好吗&#xff1f;至于我当时内心那个慌就不多描述了&…

MySQL limit 性能分析

limit用法 在我们使用查询语句的时候&#xff0c;经常要返回前几条或者中间某几行数据&#xff0c;这个时候怎么办呢&#xff1f;不用担心&#xff0c;mysql已经为我们提供了这样一个功能。 SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset (LIMIT offset, le…

知识星球首次社群公开课,也给自己一次成长的机会

本来也是深夜了&#xff0c;睡前浏览了一下微信。在某公众得知识星球在搞一个公开课。 之前只知道很多人通过知识星球赚了很多钱&#xff0c;甚至超过自己的工资&#xff0c;也是很好奇很激动。作为一个程序猿&#xff0c;也想窥探一下捡钱的秘诀。 于是立即加入了课程。如果你…

知识星球公开课第一天听课收获

1.背景 昨天凌晨在博客上分享了一个知识星球报名的入口&#xff0c;不过鉴于自己的影响力&#xff0c;很可惜——没有人通过我的入口报名 |-_-| 不过这并不影响我分享我听课的收获&#xff0c;希望看到的人能一起成长 2.说说课程 首先&#xff0c;公开课是以音频和图片的方…

第五十七篇 IO模型

目录 一、IO模型简介1.什么是IO模型2.IO的特点3.为什么需要IO模型二、socket网络IO1.操作系统的两种状态&#xff1a;2.涉及的两个步骤三、IO模型详解1.阻塞IO2.非阻塞IO3.多路复用IO4.异步IO5.信号驱动IO6.不要在迭代的过程中操作元素一、IO模型简介 1.什么是IO模型 1.模型&am…