cordova 拍照上传!

1,安装需要的插件

不管是从相册中选择图片上传,还是拍照上传。我们都需要如下先安装如下三个插件:Camera(相机)、file(文件访问操作)、fileTransfer(文件传输)。

如果没有安装的话,先安装下:


1

2

3

cordova plugin add cordova-plugin-camera

cordova plugin add cordova-plugin-file

cordova plugin add cordova-plugin-file-transfer

2,选择设备照片并上传

下面代码样例,点击按钮后会打开系统相册来选择照片,选中的照片会显示在页面上。同时会把选择的照片上传到服务器。

       


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

<!DOCTYPE html>

<html>

    <head>

        <title>Capture Photo</title>

        <meta http-equiv="Content-type" content="text/html; charset=utf-8">

        <script type="text/javascript" charset="utf-8" src="cordova.js"></script>

        <script type="text/javascript" charset="utf-8">

            var pictureSource;

            var destinationType;

            document.addEventListener("deviceready",onDeviceReady,false);

            //Cordova加载完成会触发

            function onDeviceReady() {

                pictureSource=navigator.camera.PictureSourceType;

                destinationType=navigator.camera.DestinationType;

            }

            //获取照片

            function getPhoto(source) {

                //quality : 图像的质量,范围是[0,100]

                navigator.camera.getPicture(onPhotoURISuccess,

                  function(error){console.log("照片获取失败!")},

                  { quality: 50, destinationType: destinationType.FILE_URI, sourceType: source });

            }

            //获取照片成功

            function onPhotoURISuccess(imageURI) {

                //打印出照片路径

                console.log(imageURI);

                //显示照片

                var largeImage = document.getElementById(‘largeImage‘);

                largeImage.style.display = ‘block‘;

                largeImage.src = imageURI;

                upload(imageURI);

            }

          //上传文件

          function upload(fileURL) {

            //上传成功

            var success = function (r) {

                console.log("上传成功! Code = " + r.responseCode);

            }

            //上传失败

            var fail = function (error) {

                alert("上传失败! Code = " + error.code);

            }

            var options = new FileUploadOptions();

            options.fileKey = "file1";

            options.fileName = fileURL.substr(fileURL.lastIndexOf(‘/‘) + 1);

            //options.mimeType = "text/plain";

            //上传参数

            var params = {};

            params.value1 = "test";

            params.value2 = "param";

            options.params = params;

            var ft = new FileTransfer();

            //上传地址

            var SERVER = "http://www.hangge.com/upload.php"

            ft.upload(fileURL, encodeURI(SERVER), success, fail, options);

          };

        </script>

    </head>

    <body style="padding-top:50px">

        <button style="font-size:23px;" onclick="getPhoto(pictureSource.PHOTOLIBRARY);">

            从相册选择照片并上传

        </button> <br>

        <img style="display:none;" id="largeImage" src="" width="300px" />

    </body>

</html>

3,拍照并上传

下面代码样例,当点击按钮后会掉用摄像头拍照,并在页面上显示出来。同时拍摄照片会上传到服务器上。

       


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

<!DOCTYPE html>

<html>

    <head>

        <title>Capture Photo</title>

        <meta http-equiv="Content-type" content="text/html; charset=utf-8">

        <script type="text/javascript" charset="utf-8" src="cordova.js"></script>

        <script type="text/javascript" charset="utf-8">

            var destinationType;

            document.addEventListener("deviceready",onDeviceReady,false);

            //Cordova加载完成会触发

            function onDeviceReady() {

                destinationType=navigator.camera.DestinationType;

            }

            //拍照

            function capturePhoto() {

                //拍照并获取Base64编码的图像(quality : 存储图像的质量,范围是[0,100])

                navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50,

                                            destinationType: destinationType.FILE_URI }

                                            );

            }

            //拍照成功

            function onPhotoDataSuccess(imageURL) {

                var smallImage = document.getElementById(‘smallImage‘);

                smallImage.style.display = ‘block‘;

                smallImage.src = imageURL;

                //开始上传

                upload(imageURL);

            }

            //拍照失败

            function onFail(message) {

                alert(‘拍照失败: ‘ + message);

            }

            //上传文件

            function upload(fileURL) {

              //上传成功

              var success = function (r) {

                  console.log("上传成功! Code = " + r.responseCode);

              }

              //上传失败

              var fail = function (error) {

                  alert("上传失败! Code = " + error.code);

              }

              var options = new FileUploadOptions();

              options.fileKey = "file1";

              options.fileName = fileURL.substr(fileURL.lastIndexOf(‘/‘) + 1);

              options.mimeType = "image/jpeg";

              //上传参数

              var params = {};

              params.value1 = "test";

              params.value2 = "param";

              options.params = params;

              var ft = new FileTransfer();

              //上传地址

              var SERVER = "http://www.hangge.com/upload.php"

              ft.upload(fileURL, encodeURI(SERVER), success, fail, options);

            };

        </script>

    </head>

    <body style="padding-top:50px">

        <button style="font-size:23px;" onclick="capturePhoto();">拍摄照片并上传</button> <br>

        <img style="display:none;width:240px;height:320px;" id="smallImage" src="" />

    </body>

</html>

原文出自:www.hangge.com

时间: 2024-10-11 17:15:12

cordova 拍照上传!的相关文章

Android应用开发之使用PhoneGap实现拍照上传功能

看这里:Android应用开发之使用PhoneGap实现拍照上传功能 在之前的使用Intellij Idea 搭建PhoneGap Android开发环境以及Android应用开发之使用PhoneGap实现位置上报功能两篇文章中,我们学习了phonegap Android环境的搭建以及phonegap获取位置信息自动上报等,本篇在之前的基础上,我们继续进行PhoneGap Android应用的开发,通过PhoneGap调用摄像头实现拍照自动上传的功能. 整体的学习思路大概是这样:index.ht

微信公众平台前端人员对接(微信拍照上传)

前言: 1.本篇主要介绍前端如何对接微信公众平台 2.示例选取微信拍照上传 3.微信JS-SDK说明文档 4.企业号开发者中心 5.请一定要确认自己的帐号类型是否拥有使用微信某项功能的权限,要不然方法回调不起作用 6.企业号对接功能检测图如下: 步骤: 1.确认设置安全域名(设置后,可在该域名下进行测试) 2.获取到AppID和AppSecret 3.通过AppID和AppSecret得到access_token a.请求方式get b.请求链接https://api.weixin.qq.com

php实现手机拍照上传头像功能

现在手机拍照很火,那么如何使用手机拍照并上传头像呢?原因很简单,就是数据传递,首先手机传递照片信息,这个就不是post传递 也不是get函数传递, 这个另外一种数据格式传递,使用的是$GLOBALS ['HTTP_RAW_POST_DATA'],这个系统函数跟post很相似,但是$GLOBALS ['HTTP_RAW_POST_DATA']支持的数据格式更丰富些,详细的区别请自己百度谷歌. 设计流程就是: $GLOBALS ['HTTP_RAW_POST_DATA']传递照片数据流(二进制)--

HTML5手机端拍照上传

1.accept="image/*" capture="camera" 自动调用手机端拍照功能 accept="image/*" capture="camera" 2.当表单提交时候有文件的时候,需要加上 var formData = new FormData($( "form" )[0]); 3.示例代码: <!DOCTYPE html> <html> <head> &

网站建设中使用HTML5实现使用手机摄像头拍照上传的功能

HTML5技术支持WebApp在手机上拍照,显示在页面上并上传到服务器.这是手机网站建设中常见的功能,当然你也可以在其它类型应用中适当使用此技术. 1. 视频流 html5 的 The Media Capture(媒体捕捉) API 提供了对摄像头的可编程访问,用户可以直接用 getUserMedia(请注意目前仅Chrome和Opera支持)获得摄像头提供的视频流.我们需要做的是添加一个Html5 的 Video 标签,并将从摄像头获得的视频作为这个标签的输入来源. <video id="

html5调用手机摄像头,实现拍照上传功能

今天做手机网站,想实现手机扫描二维码功能.首先实现在浏览器中调用手机摄像头,实现拍照功能并且把拍下的照片显示在页面并上传到服务器上,然后再在服务器端进行分析. 首先实现在浏览器中调用摄像头,当然用现在火的不行的html5,html5中的<video>标签,并将从摄像头获得视频作为这个标签的输入来源.实现拍照功能的html5代码: <article> <style scoped> video { transform: scaleX(-1); } p { text-alig

摄像头拍照上传

今天研究UIImagePickerControlle这个类,用它来打开摄像头和本地照片库.找到一个好的办法也是比较简单的方法来将选择好的图片显示我们想要的UIImageView上,下面通过代码来详细讲解. 这是我的ActionSheet 协议事件 #pragma mark - ActionSheetDelegate - (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonInde

【神操作】拍照上传就可以打卡!

相信不少人饱受指纹识别.人脸打卡的虐待!堵在最后一公里.迟到一分钟?堵在最后一公里,没法打卡?甚至是等不到或挤不上电梯结果导致打卡迟到?人脸识别半天识别不出,欲哭无泪?指纹打卡关键时刻掉链子,又算迟到? 这些打卡之痛,想必每个上班族总是要经历那么几回.还好现在的手机考勤设计非常人性化,可以设定签到范围,精确到公司附近300米-1000米,只要步入公司附近,就可以顺手签个到.这对于很多需要打卡的上班族确实方便了很多,但这一波刚平,一波又起.手机签到.GPS定位打卡是很方便,但这都要在网络给力的前提

Android仿微信图片上传,可以选择多张图片,缩放预览,拍照上传等

仿照微信,朋友圈分享图片功能 .可以进行图片的多张选择,拍照添加图片,以及进行图片的预览,预览时可以进行缩放,并且可以删除选中状态的图片 .很不错的源码,大家有需要可以下载看看 . 微信 微信 微信 微信 下载地址 : 微信上传图片源码 很多网友不知道怎么获取图片路径,这里贴出来: String path = Bimp.tempSelectBitmap.get(position).getImagePath(); //部分代码如下 [java] view plain copy package co