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,选择设备照片并上传 
下面代码样例,点击按钮后会打开系统相册来选择照片,选中的照片会显示在页面上。同时会把选择的照片上传到服务器。
         原文:Cordova - 从相册中选择照片并上传,以及拍照上传        原文:Cordova - 从相册中选择照片并上传,以及拍照上传
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,拍照并上传
下面代码样例,当点击按钮后会掉用摄像头拍照,并在页面上显示出来。同时拍摄照片会上传到服务器上。
       原文:Cordova - 从相册中选择照片并上传,以及拍照上传        原文:Cordova - 从相册中选择照片并上传,以及拍照上传
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  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM