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

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: 五千万得主

[结贴] 怎么把一张图片存入APP中创建好的文件系统目录里?

  [复制链接]

1

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
QQ
发表于 2017-9-22 14:32:52 | 显示全部楼层
大神 五千万得主 我按你的方法 是可以把base64位编码   存成制定的路径的jpg文件了,但图片文件打开,是空白~,求大神指导
回复 支持 反对

使用道具 举报

1

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
QQ
发表于 2017-9-22 14:42:26 | 显示全部楼层
代码如下:
//调用拍照,成功则返回base64编码字符串
  navigator.camera.getPicture(onSuccess, onFail, {
                        destinationType:navigator.camera.DestinationType.DATA_URL,
                        quality:70,
                        targetWidth:768,
                        targetHeight:1024,
                         sourceType : 1,
                         saveToPhotoAlbum:true
                });
//拍照成功调回
function onSuccess(imageURI) {
                        var dfd = $.Deferred();
                        saveDataTofilesystem("/巡视/tangfengfan11.jpg",imageURI,dfd);//存成图片
                         dfd.resolve();
}
//base64编码转化为bold
   
               function convertBase64UrlToBlob(Base64code) {
                        // var bytes=window.atob(base64code.split(',')[1]);
                        // //去掉url的头,并转换为byte
                        var bytes = window.atob(Base64code);
                        // 处理异常,将ascii码小于0的转换为大于0
                        var ab = new ArrayBuffer(bytes.length);
                        var ia = new Uint8Array(ab);
                        for (var i = 0; i < bytes.length; i++) {
                                ia = bytes.charCodeAt(i);
                        }
                        return new Blob([ab], {
                                type : 'image/jpeg'
                        });
                }
//将转换好的blod写成**.jpg图片文件
        
         function saveDataTofilesystem (fileurl,Base64code,dtd) {
                        var self = this;
                       
                        window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
                        window.requestFileSystem(window.PERSISTENT,0, function(fs) {        
                                fs.root.getFile(fileurl, {
                                        create : true
                                }, function(fileEntry) {
                                        fileEntry.createWriter(function(fileWriter) {
                                                var data = convertBase64UrlToBlob(Base64code);
                                                fileWriter.seek(0)
                                                fileWriter.write(data);
                                                dtd.resolve();
                                                //alert('save success'+fileurl);
                                        }, function(err) {
                                                alert("错误码 :" + err.code);
                                        });
                                }, function(err) {
                                        alert("错误码 :" + err.code);
                                });

                        },  function(err) {
                                        alert("错误码 :" + err.code);
                                });
                }   
问题:以上代码可顺利执行,成功在sd卡上生产了图片文件,路径为:/巡视/tangfengfan11.jpg
但图片打开为空白?困扰了很多天,求大神指导~~万分感谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 05:33 , Processed in 0.065613 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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