起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1733|回复: 3

[处理中4] 手机拍照与上传时使用cordova.camera插件在ios系统上使用报错

[复制链接]

22

主题

82

帖子

230

积分

中级会员

Rank: 3Rank: 3

积分
230
QQ
发表于 2016-11-10 10:05:45 | 显示全部楼层 |阅读模式
// 上传文件方法
        Model.prototype.uploadFiles = function(source, destinationType, mediaType) {
                var self = this;
                var ft;
                function clearProcess() {
                        ft.abort();
                }
                function openFileSelector() {
                        var options = {
                                quality : 50,
                                destinationType : destinationType,
                                sourceType : source,
                                mediaType : mediaType
                        };
                        navigator.camera.getPicture(uploadFile, uploadBroken, options);
                }
                function uploadBroken(message) {
                        // alert(message);
                        clearProcess();
                }

                /**
                 * 上传过程回调,用于处理上传进度,如显示进度条等。
                 */
                function uploadProcessing(progressEvent) {
                        if (progressEvent.lengthComputable) {
                                // 已经上传
                                var loaded = progressEvent.loaded;
                                // 文件总长度
                                var total = progressEvent.total;
                                // 计算百分比,用于显示进度条
                                var percent = parseInt((loaded / total) * 100);
                                // 换算成MB
                                loaded = (loaded / 1024 / 1024).toFixed(2);
                                total = (total / 1024 / 1024).toFixed(2);
                                $('#process_info').html(loaded + 'M/' + total + 'M');
                                $('.upload_current_process').css({
                                        'width' : percent + '%'
                                });
                        }
                }
                function uploadFile(fileURI) {
                        var options = new FileUploadOptions();
                        options.fileKey = "file";
                        imguri = fileURI.substr(fileURI.lastIndexOf('/') + 1);
                        options.fileName = fileURI.substr(fileURI.lastIndexOf('/') + 1);
                        options.mimeType = "multipart/form-data";
                        options.chunkedMode = false;
                       
                        ft = new FileTransfer();
                        var uploadUrl = encodeURI(BASE_URL+"/PhoneHandler.ashx?jsoncallback=?");
                        alert(uploadUrl);
                        ft.upload(fileURI, uploadUrl, uploadSuccess, uploadFailed, options);
                        // 获取上传进度
                        // ft.onprogress = uploadProcessing;
                        // 显示进度条
                        // $('.upload_process_bar,#process_info').show();
                }

                function uploadSuccess(r) {
                alert(r.response);
                        // alert('文件上传成功:' + r.response);
                        //alert(imguri);
                        alert(r.response);
                        var dataFiles = self.comp("dataFiles");
                        if (dataFiles.find([ 'dataFiles' ], [ r.response ]).length === 0) {
                                dataFiles.newData({
                                        index : 0,
                                        defaultValues : [ {
                                                "fileName" : imguri,
                                                "fileUrl" : r.response,
                                        }]
                                });
                        }
                        clearProcess();
                }
                function uploadFailed(error) {
                        alert('上传失败了');
                        clearProcess();
                }
                openFileSelector();
        };

        // 拍照
        Model.prototype.button5Click = function(event) {
                var self = this;
                self.uploadFiles(1, 1, 0);
        };
        // 相册
        Model.prototype.button6Click = function(event) {
                var self = this;
                self.uploadFiles(2, 1, 0);
        };
        // 文件
        Model.prototype.button7Click = function(event) {
                var self = this;
                self.uploadFiles(0, 1, 2);
                /*var dataFiles = self.comp("dataFiles");
                        for(var i=0;i<5;i++) {
                                dataFiles.newData({
                                        index : 0,
                                        defaultValues : [ {
                                                "fileName" : "namejia"+i,
                                                "fileUrl" :"0",
                                        }]
                                });
                        }*/
        };


在安卓上就可以用,但是在ios上就会报错

1

主题

6163

帖子

2095

积分

金牌会员

Rank: 6Rank: 6

积分
2095
QQ
发表于 2016-11-10 14:08:27 | 显示全部楼层
吧IOS上的完整错误日志发过来
回复 支持 反对

使用道具 举报

22

主题

82

帖子

230

积分

中级会员

Rank: 3Rank: 3

积分
230
QQ
 楼主| 发表于 2016-11-10 14:15:35 | 显示全部楼层
半导体 发表于 2016-11-10 14:08
吧IOS上的完整错误日志发过来

显示的是abort没有定义
回复 支持 反对

使用道具 举报

22

主题

82

帖子

230

积分

中级会员

Rank: 3Rank: 3

积分
230
QQ
 楼主| 发表于 2016-11-10 16:40:02 | 显示全部楼层
半导体 发表于 2016-11-10 14:08
吧IOS上的完整错误日志发过来

而且返回不了上传图片的url
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2025-6-22 04:31 , Processed in 0.052392 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表