YdbOpen说明文档


  • 4.2 文件操作
  • 4.2.1 文件是否存在 fileexist
  • 4.2.2 创建文件 createfile
  • 4.2.3 删除文件 deletefile
  • 4.2.4 文件命名 renfile
  • 4.2.5 获取指定文件内容 readalltext
  • 4.2.6 写入内容到指定文件 writealltext
  • 4.2.7 追加文件内容 appendtext
  • 4.2.8 文件下载 download
  • 4.3 文件夹或文件复制 copyto
  • 4.4 文件夹或文件移动 moveto
  • 4.5 将相对路径转换成绝对路径 relpath2abspat
  • 4.6 压缩文件 zip
  • 4.7 解压文件 unzip
  • 5 判断网络此刻状态 netstate
  • 6 问题反馈
  • 概述

    YdbOpen通过JS远程的打开、关闭、创建、修改APP本地SqlLite数据库的任何一处,助力您开发出更优秀的APP。

    通过JS远程的增删改查本地文件。通过使用远程下载功能,您可以随时随地将您需要的文件下载到您所需要的APP本地。

    此文档面向网页开发者介绍YdbOpen如何使用及相关注意事项,需要注意的是必须开启云开发插件之后,YdbOpen里的方法才会生效。

    YdbOpen使用步骤

    步骤一:引入JS文件

    在需要调用JS接口的页面引入如下JS文件,:http://static.ydbimg.com/API/YdbOpen.js

    步骤二:调用YdbOpen的相关方法

                    例如: /* YdbOpen跨域写法 */
                    YdbOpen.call("ajax", {
                        url: '你的url地址',
                        method: 'POST',
                        data: { UserName: nameObj.val(), UserKey: pwdObj.val() },
                        file: { HeadImg: headObj.val(), CardImg: cardObj.val() },
                        cache: false,
                        timeout: 30,
                        dataType: 'json'
                    }, function (ret, err) {
                        if (ret) {
                            layer.open({
                                content: JSON.stringify(ret),
                                btn: ['确定']
                            });
                        } else {
                            layer.open({
                                content: '错误码:' + err.code + ';错误信息:' + err.msg + '网络状态码:' + err.statuscode,
                                btn: ['确定']
                            });
                        };
                    });
                    //特别说明:YdbOpen的调用要放到页面尾部,或者放入页面加载完事件中
                    //方法一:jquery 中:$(function(){} 括号内写你的内容
                    //方法二:使用body的onload属性,onload='someFunctionsWithYdbOpen()'
                    //方法三:window.onload=function(){//someFunctionsDoWithYdbOpen}//用window的onload事件,窗体加载完毕的时候
                

    接口调用说明

    跨域访问 ajax

                     /* 示例 */
                    YdbOpen.call("ajax", {
                        url: '你的url地址',
                        method: 'POST',
                        data: { UserName: nameObj.val(), UserKey: pwdObj.val() },
                        file: { HeadImg: headObj.val(), CardImg: cardObj.val() },
                        cache: false,
                        timeout: 30,
                        dataType: 'json'
                    }, function (ret, err) {
                        if (ret) {
                            alert(JSON.stringify(ret));                       
                        } else {
                            alert('错误码:' + err.code + ';错误信息:' + err.msg + '网络状态码:' + err.statuscode);
                        };
                    });
                    //参数说明:输入参数:json对象
    
    参数 类型 解释
    url
    字符型
    跨域访问的接口地址
    method
    字符型
    访问类型,如GET,POST,DELETE,PUT等
    data
    Object
    提交的键值对如{UserName:"qike",PassWord:"1234"}
    file
    Object
    多文件上传的键值对如{HeadImg:"xxx"},可省略
    Cache
    布尔型
    默认false,可省略
    timeout
    整型
    超时时间,默认30秒,可省略
    datatype
    字符型
    Json,xml,text等
    //输出参数:
    参数 类型 解释
    ret
    不定
    根据DataType类型而定
    err
    json
    {code:1,msg:"操作成功",statuscode:200}

    数据库操作类

    数据库创建打开接口 dbopen

                       /* 示例 */
                       YdbOpen.call("dbopen", dbname, function (ret) {
    		            if (ret.status) {
    		            alert(ret.msg);
    		            } else {
    		            alert(ret.msg);
    		            }
    		    });
                   // 说明:输入参数:dbname,如 "weblsq.db"。根据Sqlite库名称判断,有则打开,无则创建;
                   //返回结果:{status: true/false,msg:"结果描述或错误原因" }
                

    数据库关闭接口 dbclose

       
                         /* 示例 */说明:关闭数据库;
                         YdbOpen.call("dbclose", "dbname", function (ret) {
    		               if (ret.status) {
    		                   alert(ret.msg);
    		                    } else {
    		                    alert(ret.msg);
    		                  }
    		               });
                       // 参数说明: 输入参数: 数据库名 dbname,如 "weblsq.db"。
                       //返回结果:{status: true/false,msg:"结果描述或错误原因" }
                

    判断表是否存在 tabexist

                       /* 示例 */
                       YdbOpen.call("tabexist", "name", function (ret) {
    		            if (ret.status) {
    		            alert("表名:" + name + "已存在"+ret.msg);
    		              } else {
    		             }
    		           });
                        // 参数说明:输入参数:字符型 表名,如tbUserinfo;
                        //返回结果:{status: true/false,msg:"结果描述或错误原因" }
                

    执行SQL语句 execsql

                         /* 示例 */
                         var createSql = "create table tbname(id integer,title varchar,content text,time varchar)";
                         YdbOpen.call("execsql", sqlStr ,function(ret) {
                          if (!ret.status) {
                             alert(ret.msg);
                            }
                         });
                        // 参数说明:输入参数:字符型,待执行的SQL语句;
                       //返回结果:{status: true/false,msg:"结果描述或错误原因" }
    
                

    查询SQL语句 query

                    /* 示例 */
                    var querySql = "select * from tbname";
                     YdbOpen.call("query", querySql, function (ret) {
                    if (ret.status) {
                        var str = ret.msg;
                        if (ret.data.length > 0) {
                            for (var i = 0; i < ret.data.length; i++) {
                                str += "" + ret.data[i].title + "" + ret.data[i].time + "";
                            }
                        } else {
                            str = "该表中暂无数据";
                        }
                    }
                });
                        // 参数说明:输入参数:字符型,待查询的SQL语句;
                        //返回结果:{ status: true/false,data:[数据集json数据,....],msg:"结果描述或错误原因" }
                

    文件及文件夹操作

    文件夹操作

    文件夹是否存在 direxist

                   /* 示例 */
                   YdbOpen.call("direxist", dir, function (ret) {
    		          if (ret.status) {
    		            alert("文件夹【" + dir + "】已存在:"+ret.msg);
    		           } else {
    		            
    		         }
    		     });
                    //输入参数:dir 字符型,文件夹名称,可以含多级,如“abc","abc\def\xyz";	
                    //返回结果:{ status: true/false,msg:"结果描述或错误原因" }
                

    创建文件夹 mkdir

                         /* 示例 */
                         YdbOpen.call("mkdir", dir, function (ret1) {
    		                if (ret1.status) {
    		                    alert("文件夹[" + dir + "]创建成功!"+ret1.msg);
    		                }
    		            });
                        // 输入参数:dir 字符型,待创建的文件夹名称,可以含有多级路径;
                        //返回结果:{ status: true/false,msg:"结果描述或错误原因" }
                

    删除文件夹 deletedir

                           //ret:{status:true/false}
                           //异常情况,文件正在使用,文件夹不存在
                            /* 示例 */
                            YdbOpen.call("deldir", dir, function (ret) {
    		                    if (ret.status) {
    		                        alert(ret.msg);
    		                    } else {
    		                        alert(ret.msg);
    		                    }
    		                });
                        //参数说明:输入参数:dir 字符型,文件夹内容,可以含多级路径,如“dira”,“a\b\c\d”,“a”;
                       //返回结果: { status: true/false,msg:"结果描述或错误原因" }
                

    文件夹命名 rendir

                        var newDir = "Srcddd";
    		            //src,trg不能在同一文件夹
    		            //异常:文件夹不存在,文件夹相同
    		            /* 示例 */
                        YdbOpen.call("rendir", { src: dirA, trg: newDir }, function (ret) {
    		                if (ret.status) {
    		                    alert(ret.msg);
    		                } else {
    		                    alert(ret.msg);
    		                }
    		            });
                       //参数说明:输入参数:{src:源路径,trg:目标路径}
                       //返回结果:{ status: true/false,msg:"结果描述或错误原因" }
                

    获取知道文件夹中内容列表 readdir

                         //ret: {status:true/false,data:[{Name:"a.txt",IsDir:false,ModifyDate:"2015-10-17 12:59:38",FileSize:0.85<单位m>},....]}
    		            //异常信息可能文件夹不存在或文件夹不是文件夹
    		            /* 示例 */
                        YdbOpen.call("readdir", { path: dirA, filetype: "*.*" }, function (ret) {
    		                if (ret.status) {
    		                    var srcHtml = ret.msg;
    		                    if (ret.data.length > 0) {
    		                        for (var i = 0; i < ret.data.length; i++) {
    		                            srcHtml += ret.data[i].Name + "  " + ret.data[i].IsDir + "  " + ret.data[i].ModifyDate + "  " + ret.data[i].FileSize;
    		                        }
    		                    }
    		                    alert("文件夹列表:\n\n" + srcHtml);
    		                } else {
    		                    alert(ret.msg);
    		                }
    		            });
                        //输入参数:{ "Path": dirA, "FileType": "*.*" }
                   
    参数 类型 注释
    Path
    字符型
    源文件夹名称
    FileType
    字符型
    文件类型,可选 默认 *.*
    //返回结果:{status:true/false,data:[{name:"文件名",isdir:true,modifydate:"2015-10-21 12:00:900",filesize:0.5},..],msg:"获取成功"} //返回参数说明:
    参数 类型 注释
    name
    字符型
    文件或文件夹名称
    isdir
    布尔型
    标识Name对应的是否为文件夹
    modifydate
    字符型
    标识文件修改时间
    filesize
    浮点型
    标识文件大小单位M,文件夹为0

    文件操作

    文件是否存在 fileexist

                       /* 示例 */
                       YdbOpen.call("fileexist", fname, function (ret) {
    		           if (ret.status) {
    		            //ret: {status:true/false,content:"文件内容"}		           
    		            } else {
    		            alert(ret.msg);
    		          }
    		       });
                     // 输入参数:fname 字符型,文件夹+文件名或文件名;
                     //返回结果:{ status: true/false,msg:"结果描述或错误原因" }
                

    创建文件 createfile

                        /* 示例 */
                        YdbOpen.call("createfile", { path: fname, default: "这是文件默认内容", encoding: "UTF-8" }, function (ret1) {
    		                if (ret1.status) {
    		                    alert("文件:" + fname + ",创建成功!" +ret1.msg);
    		                } else {
    		                    alert(ret1.msg);
    		                }
    		            });
                        //输入参数:Json对象;
                        
    参数 类型 注释
    path
    字符型
    待创建的文件路径,如“A/qike.txt”
    default
    字符型
    默认的文件内容;可空,如“”/“这是文件内容”
    encoding
    字符型
    标识文件编码;可空,默认为UTF-8,可以为utf-8,utf-8,Utf-8
    //返回结果:{ status: true/false,msg:"结果描述或错误原因" }

    删除文件 deletefile

                        /* 示例 */
                        YdbOpen.call("delfile", file, function (ret) {
    		                if (ret.status) {
    		                    alert(ret.msg);
    		                } else {
    		                    alert(ret.msg);
    		                }
    		            });
                        // 参数说明:输入参数:字符型,标识文件名,如“aa.Txt”,“dira\a.Txt”;
                        //返回结果: { status: true/false,msg:"结果描述或错误原因" }
                

    文件命名 renfile

                        /* 示例 */
                        var fname = dirA + "/" + fileName;
                        var foname = dirA + "/" + "qike.lst";
                        //src,trg需在同一文件夹
                        //异常:文件不存在,文件正在使用,不在同一文件夹			        
                        YdbOpen.call("renfile", { src: fname, trg: foname }, function (ret) {
    			            if (ret.status) {
    			                alert(ret.msg);
    			            } else {
    			                alert(ret.msg);
    			            }
    			        });
                       // 输入参数:{src:源路径,trg:目标路径}
                       //返回结果:{ status: true/false,msg:"结果描述或错误原因" }
                

    获取指定文件内容 readalltext

                         /* 示例 */
                         YdbOpen.call("readalltext", { filepath: fname, encoding: "UTF-8" }, function (ret1) {
    		                if (ret1.status) {
    		                    alert(ret1.content+":"+ret1.msg);
    		                }
    		            });
                        //参数说明:输入参数:{filepath:文件名,encoding:"UTF-8"}
                         
    参数 类型 注释
    filepath
    字符型
    文件名称
    encoding
    字符型
    文件编码,可选 默认 UTF-8,可以为utf-8,utf-8,UTF-8
    //返回结果:{status:true/false,count:"文件内容",msg:"结果描述"}

    写入内容到指定文件 writealltext

                        var fname = dirA + "/" + fileName;
                        //覆盖式写入
                        /* 示例 */
                        YdbOpen.call("writealltext", { filepath: fname, filecontent: "这是写入的全部内容!!\n\r", encoding: "UTF-8" }, function (ret) {
    			            if (ret.status) {
    			                alert(ret.msg);
    			            } else {
    			                alert(ret.msg);
    			            }
    			        });
                        //输入参数:{ filepath: fname, filecontent: "内容!!", encoding:"UTF-8" }
    
                      
    参数 类型 注释
    filepath
    字符型
    文件名称
    encoding
    字符型
    文件编码,可选 默认 UTF-8,可以为utf-8,utf-8,UTF-8
    filecontent
    字符型
    待写入的文件内容
    //返回结果:{status:true/false,msg:"结果描述"} 字符型,为文件内容,异常或失败则为空; 说明:文件不存在是则自动创建,存在则覆盖;

    追加文件内容 appendtext

                        /* 示例 */
                        YdbOpen.call("appendtext", { filepath: fname, appendtext: "这是追加的内容!!\n\r" ,encoding: "UTF-8"}, function (ret2) {
                            if (ret2.status) {
                                alert(ret2.msg);
                            }
                        });
                      //输入参数:{ filepath: fname, appendtext: "追加的内容!!" ,encoding: "UTF-8"}
                      
    参数 类型 注释
    filepath
    字符型
    文件名称
    appendtext
    字符型
    待追加的内容
    encoding
    编码
    UTF-8、utf-8、utf-8
    //返回结果: {status:true/false,msg:"结果描述"}

    文件下载 download

                       //ret: {status:true/false,filename:"本地物理路径file:///"}
                       //异常信息可能链接不存在,或下载终端,网络异常等
                       /* 示例 */
                        YdbOpen.call("download", {
    		                url: '要下载的文件路径',
    		                trgname: dirB
    		            }, function (ret, err) {
    		                if (ret.status) {
    		                    alert("下载成功:" + ret.fileName);
    		                } else {
    		                    alert(err.msg);
    		                }
    		            });
                        //输入参数:{url:"要下载的文件路径",trgname:"下载后的路径及名称"}
                        
    参数 类型 注释
    url
    字符型
    待下载路径
    trgname
    字符型
    下载后的名称和路径
    返回结果:两个参数,ret,err Ret {status:true/false,filename:"保存后的物理路径",msg:"结果描述"}
    参数 类型 注释
    status
    整型
    1、成功;0、失败
    fileName
    字符型
    下载后的物理路径名称
    Err:{code:1,msg:"操作成功",statuscode:200}
    参数 类型 注释
    code
    整型
    1、成功;0、失败
    msg
    字符型
    结果描述
    statuscode
    整型
    网络状态码

    文件夹或文件复制 copyto

                        //覆盖式拷贝
                        //ret:{status:true/false}
                        //异常:可能文件不存在、目标文件正在使用等;
                        /* 示例 */
                        YdbOpen.call("copyto", { src: fsrc, trg: ftrg }, function (ret) {
    		                if (ret.status) {
    		                    alert("文件" + fsrc + "拷贝到" + ftrg + "成功::" + ret.msg);
    		                } else {
    		                    alert(ret.msg);
    		                }
    		            });
                        // 参数说明:输入参数:{src:源路径,trg:目标路径}
                        //返回结果:{ status: true/false,msg:"结果描述或错误原因" }
                

    文件夹或文件移动 moveto

                        var fonamd = dirA + "/" + "qiqp.lst";
                        var fTrg = dirB + "/" + "qq.dat";
                        //文件移动等于:复制+删除源文件
                        //异常信息可能文件不存在或正在使用
                        /* 示例 */
                        YdbOpen.call("moveto", { src: fonamd, trg: fTrg }, function (ret) {
    			            if (ret.status) {
    			                alert("文件" + fonamd + "移到" + fTrg + "成功::" + ret.msg);
    			            } else {
    			                alert(ret.msg);
    			            }
    			        });
                        //输入参数:{src:源路径,trg:目标路径} 
                        //返回结果:{ status: true/false,msg:"结果描述或错误原因" }
                        // 注释:MoveTo等于Copy + delete;
    
                

    将相对路径转换成绝对路径 relpath2abspath

                        //ret: {status:true/false,path:"file:///xxx"}
                        /* 示例 */
                        YdbOpen.call("relpath2abspath", dirA, function (ret) {
    		                if (ret.status) {
    		                    alert("SrcDir:[" + dirA + "]AbsPath:[" + ret.path + "]msg:["+ret.msg+"]");
    		                } else {
    		                    alert(ret.msg);
    		                }
    		            });                
                        //输入参数:字符型 ,标识文件夹或文件名;
                        //说明:支持文件夹和文件;
                        //返回结果:{status:true/false,path:"对应的物理路径",msg:"结果描述"}
    
                

    压缩文件 zip

                        //文件压缩: 参数 Files可换成 FileType:"*.lst",若同时存在则 FileType优先级高
                        //ret:{status:true/false}
                        /* 示例 */
                        YdbOpen.call("zip", { dirname: dirA, files: ["weblsq.lst", "qiqi.lst"], targetname: "weblsq.zip" }, function (ret) {
    		                if (ret.status) {
    		                    alert(ret.msg);
    		                } else {
    		                    alert(ret.msg);
    		                }
    		            });
                        //输入参数:{ dirname: dirA, files: ["weblsq.lst", "qiqi.lst"],  targetname: "weblsq.zip" }
    
    参数 类型 注释
    dirname
    字符型
    文件夹名称
    files
    数组型
    待压缩的文件列表
    filetype
    字符型
    文件过滤支持多个,如“*.Txt”,“*.Txt;*.Log;*.pdf”
    PassWord
    字符型
    压缩包密码,可选
    targetname
    字符型
    标识压缩后文件的存放位置可为文件夹名或文件夹+文件名
    //说明:files和filetype互斥,filetype优先; //返回结果:{status:true/false,msg:"结果描述"}

    解压文件 unzip

                        /* 示例 */
                        YdbOpen.call("unzip", { fileName: zipFile,trgdir: trgDir }, function (ret) {
    		                if (ret.status) {
    		                    alert(ret.msg +":"+ret.abspath);
    		                } else {
    		                    alert("zip解压失败:"+ret.msg);
    		                }
    		            });
                        //输入参数:{ filename: zipFile, password: "12345", trgdir: trgDir }
    	
    参数 类型 注释
    filename
    字符型
    Zip文件名称
    PassWord
    数组型
    压缩包密码,可选
    trgdir
    字符型
    解压路径,为文件夹,不空
    返回结果:{status:true/false,abspath:"解压后的物理路径",msg:"结果描述"}

    判断网络此刻状态 netstate

                        /* 示例 */
                        YdbOpen.call("netstate", null, function (ret) {
    		            if (ret.status) {
    		                var msg = "wifi 不可用";
    		                switch (ret.state) {
    		                    case 0:
    		                        msg = "wifi 不可用";
    		                        break;
    		                    case 1:
    		                        msg = "wifi 可用";
    		                        break;
    		                    case 2:
    		                        msg = "gprs 不可用";
    		                        break;
    		                    case 3:
    		                        msg = "gprs 可用";
    		                        break;
    		                }
    		                alert("state:[" + msg + "]msg:["+ret.msg+"]");
    		            } else {
    		                alert(ret.msg);
    		            }
    		        });
                        //输入参数:无;
                        //返回结果:{status:true/false, state:状态码, msg:"结果描述"}
                        状态码说明:
                       -1:默认值   status为false时
                        0:wifi 不可用
                        1:wifi 可用
                        2:gprs 不可用
                        3:gprs 可用
    
                

    问题反馈

    邮箱地址:[email protected]

    邮件主题:【YdbOpen反馈】

    邮件内容说明:

    用简明的语言描述问题所在,并讲清楚遇到该问题的场景,可附上截屏图片,我们团队会尽快处理你的反馈。