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

QQ登录

只需一步,快速开始

查看: 4888|回复: 13

[处理中6] cordova图片上传 选择bmp文件报错

[复制链接]

8

主题

34

帖子

74

积分

初级会员

Rank: 2

积分
74
QQ
发表于 2016-5-16 14:44:50 | 显示全部楼层 |阅读模式
cordova图片上传,从相册中选择一个bmp文件报错:Unable to retrieve path to picture! 大家有出现这样的问题吗?怎么解决,怎么控制图片格式,jpg文件没有出现这样的错误。谢谢代码:

navigator.camera.getPicture(onLoadImageLocalSuccess, onLoadImageFail, {mediaType : 0,//只选择图片
                        quality: 50,
                        targetWidth:800, //图片输出宽度
                        targetHeight:800, //图片输出高度            
                   destinationType: destinationType.FILE_URI,
                sourceType: pictureSource.PHOTOLIBRARY
                });



8

主题

34

帖子

74

积分

初级会员

Rank: 2

积分
74
QQ
 楼主| 发表于 2016-5-16 14:45:54 | 显示全部楼层
有人遇到这样的情况吗?求助
回复 支持 反对

使用道具 举报

发表于 2016-5-16 18:32:00 | 显示全部楼层
本帖最后由 liangyongfei 于 2016-5-16 18:33 编辑

这个方法getPicture 应该是不识别 bmp 这种类型的图片格式!
文件上传参考下:http://bbs.wex5.com/forum.php?mod=viewthread&tid=88928

案例:/UI2/system/api/native/demo/test.w
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

8

主题

34

帖子

74

积分

初级会员

Rank: 2

积分
74
QQ
 楼主| 发表于 2016-5-17 09:28:16 | 显示全部楼层
怎么做可以识别 bmp 这种类型的图片格式~ 求租@liangyongfei
回复 支持 反对

使用道具 举报

8

主题

34

帖子

74

积分

初级会员

Rank: 2

积分
74
QQ
 楼主| 发表于 2016-5-17 09:54:59 | 显示全部楼层
找到原因了。我加上targetWidth:800 选择bmp就报错。为什么?
回复 支持 反对

使用道具 举报

发表于 2016-5-17 13:58:45 | 显示全部楼层
qxlandcq 发表于 2016-5-17 09:54
找到原因了。我加上targetWidth:800 选择bmp就报错。为什么?

你的意思是??去掉这个属性targetWidth:800  就可以正常上传bmp文件吗??
麻烦你把案例代码发来!本地重现下才能找到原因!
请说详细些,具体是哪里的原因!??
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

8

主题

34

帖子

74

积分

初级会员

Rank: 2

积分
74
QQ
 楼主| 发表于 2016-5-17 14:23:00 | 显示全部楼层
是的,我把targetWidth:800,targetHeight:800这两个参数注释掉,就能成功上传bmp文件,打开就报上面的错。
x5里 js源码:
<script type="text/javascript" charset="utf-8">

        var pictureSource;                //图片来源
        var destinationType;                //设置返回值的格式
       
        // 等待PhoneGap连接设备
        document.addEventListener("deviceready",onDeviceReady,false);
        // PhoneGap准备就绪,可以使用!
        function onDeviceReady() {
                pictureSource=navigator.camera.PictureSourceType;
                destinationType=navigator.camera.DestinationType;
        }

function onLoadImageFail(message) {
        alert(message);
}
function oncameraImageFail(message) {
        alert(message);
}
function isCanOption(){
        if(document.getElementsByName("pics").length==9){
                return false;               
        }else
                return true;
}
//本地相册上传
function loadImageLocal() {
        if(isCanOption()){
                //获取本地图片并显示在屏幕
                navigator.camera.getPicture(onLoadImageLocalSuccess, onLoadImageFail, {mediaType : 0,//只选择图片
                        quality: 50,
                        targetWidth:800, //图片输出宽度
                        targetHeight:800, //图片输出高度            
                   destinationType: destinationType.FILE_URI,
                sourceType: pictureSource.PHOTOLIBRARY,
                        saveToPhotoAlbum:false
                });
        }else{
                //navigator.notification.alert("最多只能发布九张图片", null, "OA知道提醒");
                $.confirm({
                        title: 'OA知道提醒',
                        keyboardEnabled: true,
                        content: "最多只能发布九张图片",
                        confirmButton: '确定',
                        cancelButton: '&nbsp;'
                });
        }
}
//本地图片选择成功后回调此函数
function onLoadImageLocalSuccess(imageURI) {
        //if(imageURI.indexOf("media/external/images/media")>0){
                uploadPic(imageURI,"photo");
        //}else{
                //navigator.notification.alert("只支持上传图片格式的文件哦~", null, "OA知道提醒");
        //}
}

//拍照上传
function loadImageUpload() {
        if(isCanOption()){
                //拍照上传并显示在屏幕
                navigator.camera.getPicture(onLoadImageUploadSuccess, oncameraImageFail, {quality: 50,
                        destinationType: destinationType.FILE_URI,
                        targetWidth:800, //图片输出宽度
                    targetHeight:800, //图片输出高度
                        saveToPhotoAlbum:true
                });
        }else{
                //navigator.notification.alert("最多只能发布九张图片哦~", null, "OA知道提醒");
                $.confirm({
                        title: 'OA知道提醒',
                        keyboardEnabled: true,
                        content: "最多只能发布九张图片",
                        confirmButton: '确定',
                        cancelButton: '&nbsp;'
                });
        }
}

//图片拍照成功后回调此函数
function onLoadImageUploadSuccess(imageURI) {
        uploadPic(imageURI,"camera");  
}

function uploadPic(imageURI,type){
        var options = new FileUploadOptions(); //文件参数选项
        var randomNum =Math.round(Math.random() * 8999 + 1000)+(new Date()).valueOf();
        options.fileKey =randomNum;//向服务端传递的file参数的parameter name
        options.fileName = imageURI.substr(imageURI.lastIndexOf('/') + 1);//文件名
        options.mimeType = "image/jpeg";//文件格式,默认为image/jpeg
        var ft = new FileTransfer();//文件上传类
        ft.onprogress = function (progressEvt) {//显示上传进度条
                if (progressEvt.lengthComputable) {
                        navigator.notification.progressValue(Math.round(( progressEvt.loaded / progressEvt.total ) * 100));
                }
        }
        navigator.notification.progressStart("OA知道提醒", "当前上传进度");
        ft.upload(imageURI, encodeURI('http://'+window.location.host+'/questionPicUpload'), function () {
                navigator.notification.progressStop();//停止进度条
                navigator.notification.alert("文件上传成功!", null, "提醒");
        }, null, options);
}
</script>

html页面onclick事件触发点:
<span class="anzhuo_ico" id="camera_oa" ><img src="../m/img/camera_oa.png" width="20" height="20" alt="" /></span>
            <span class="anzhuo_ico" id="add_img" ><img src="../m/img/img_ico.png" width="20" height="20" alt="" /></span>

回复 支持 反对

使用道具 举报

8

主题

34

帖子

74

积分

初级会员

Rank: 2

积分
74
QQ
 楼主| 发表于 2016-5-17 14:36:03 | 显示全部楼层
报错的bmp图片 我存到网盘(http://yun.baidu.com/share/link? ... 3&uk=1813174420)了 您帮忙下载测试一下,谢谢了。感激感激  
回复 支持 反对

使用道具 举报

发表于 2016-5-17 17:22:17 | 显示全部楼层
qxlandcq 发表于 2016-5-17 14:23
是的,我把targetWidth:800,targetHeight:800这两个参数注释掉,就能成功上传bmp文件,打开就报上面的错。
...

你好楼主,这个问题需要我在本地环境进行问题重现,所以会花费较长时间,请你耐心等待,我完成后会第一时间反馈结果,谢谢!2016051700033
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

8

主题

34

帖子

74

积分

初级会员

Rank: 2

积分
74
QQ
 楼主| 发表于 2016-5-17 17:56:59 | 显示全部楼层
好的,谢谢,感激了,我刚刚本地拿你们的demo加了targetWidth:800...选择bmp文件的确报错,上传的bmp文件测试的话可以参考我存入网盘的图片http://yun.baidu.com/share/link? ... 3&uk=1813174420
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 11:01 , Processed in 0.117747 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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