`
haoningabc
  • 浏览: 1495900 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

html5的fiesystem api 浏览器本地存储

阅读更多
html5的fiesystem api可以存取本地文件
一言不合上代码
<a href="filesystem:http://192.168.139.85/temporary/">filesystem:http://192.168.139.85/temporary/</a></br>
<input type="button" value="create log and /log/log.txt" onclick="create_test()"/></br>
<input type="text" id="delete_file" value="/log/log.txt"/>
<input type="button" value="delete file" onclick="window.requestFileSystem(window.TEMPORARY, 5*1024*1024 , onDeleteFile, errorHandler)"/></br>
<input type="button" value="read /log/log.txt" onclick="window.requestFileSystem(window.TEMPORARY, 5*1024*1024 , onReadFile, errorHandler)"/></br>
<input type="file" id="myfile" multiple /> </br> 
<input type="button" value="delete dir log" onclick="window.requestFileSystem(window.TEMPORARY, 5*1024*1024 , onDeleteDir, errorHandler)"/></br>
<script type="text/javascript">
window.requestFileSystem  = window.requestFileSystem || window.webkitRequestFileSystem;  

function onMkdir(fs) {
        console.log('mkdir log,  Opened file system: ' + fs.name);
    fs.root.getDirectory('log', {create: true, exclusive: true}, function(dirEntry) {  
            console.log("-----create---/log");
            dirEntry.isDirectory ===  true;
            dirEntry.name == 'log';  
            dirEntry.fullPath == '/log';
        }, errorHandler);  
}
function onInitFile(fs) {
    console.log('create /log/log.txt,  Opened file system: ' + fs.name);
    fs.root.getFile('/log/log.txt', {create: true, exclusive: true}, function(fileEntry) {  
        console.log("-----create---/log/log.txt");
        fileEntry.isFile === true  
        fileEntry.name == 'log.txt'  
        fileEntry.fullPath == '/log/log.txt'  
        fileEntry.createWriter(function(fileWriter) {  
                        fileWriter.onwriteend = function(e) {  
                                console.log('Write completed.');  
                };  
                        fileWriter.onerror = function(e) {  
                                console.log('Write failed: ' + e.toString());  
                };  
  
                // Create a new Blob and write it to log.txt.  
//              var bb = new BlobBuilder(); // Note: window.WebKitBlobBuilder in Chrome 12.  
//              var bb = new window.WebKitBlobBuilder();// in Chrome 12.  
//                      var bb = new (window.MozBlobBuilder || window.WebKitBlobBuilder || window.BlobBuilder)();
//              bb.append('hello haoning');  
//                      new Blob(["data"]);
//              fileWriter.write(bb.getBlob('text/plain'));  
//                      http://stackoverflow.com/questions/14527820/does-html-5s-blobbuilder-still-work-in-google-chrome
                fileWriter.write(new Blob(["hello ","haoning"]));  
  
        }, errorHandler);  
  }, errorHandler);  
}
function onReadFile(fs) {  
        console.log('read /log/log.txt,  Opened file system: ' + fs.name);
        fs.root.getFile('/log/log.txt', {}, function(fileEntry) {  
    // Get a File object representing the file,  
    // then use FileReader to read its contents.  
    fileEntry.file(function(file) {  
       var reader = new FileReader();  
       reader.onloadend = function(e) {  
         var txtArea = document.createElement('textarea');  
         txtArea.value = this.result;  
         document.body.appendChild(txtArea);  
       };  
       reader.readAsText(file);  
    }, errorHandler);  
  }, errorHandler);  
}  
function onDeleteFile(fs) {
        console.log('rm <file> ,Opened file system: ' + fs.name);
        fs.root.getFile(document.getElementById("delete_file").value, {delete: true, exclusive: true}, function(fileEntry) {  
                console.log("delete--------log.txt");
                fileEntry.remove(successCallback, opt_errorCallback);  
        }, errorHandler);  
}
function onDeleteDir(fs) {
        console.log('rm -rf log ,Opened file system: ' + fs.name);
    fs.root.getDirectory('log', {delete: true, exclusive: true}, function(dirEntry) {  
        console.log("delete--------log");
    //dirEntry.remove(successCallback, errorHandler);  
    dirEntry.removeRecursively(successCallback, opt_errorCallback); 
  }, errorHandler);  
}

//window.requestFileSystem(window.TEMPORARY, 5*1024*1024 , onMkdir, errorHandler);
//window.requestFileSystem(window.TEMPORARY, 5*1024*1024 , onInitFile, errorHandler);
//window.requestFileSystem(window.TEMPORARY, 5*1024*1024 , onDeleteFile, errorHandler);
//window.requestFileSystem(window.TEMPORARY, 5*1024*1024 , onDeleteDir, errorHandler);
//window.requestFileSystem(window.TEMPORARY, 5*1024*1024 , onReadFile, errorHandler);

function create_test(){
        window.requestFileSystem(window.TEMPORARY, 5*1024*1024 , onMkdir, errorHandler);
        window.requestFileSystem(window.TEMPORARY, 5*1024*1024 , onInitFile, errorHandler);
}

document.querySelector('#myfile').onchange = function(e) {  
        var files = this.files;  
        window.requestFileSystem(window.TEMPORARY, 1024*1024, function(fs) {  
                // Duplicate each file the user selected to the app's fs.  
            for (var i = 0, file; file = files[i]; ++i) {  
              // Capture current iteration's file in local scope for the getFile() callback.  
                        (function(f) {  
                                fs.root.getFile("/log/"+file.name, {create: true, exclusive: true}, function(fileEntry) {  
                        fileEntry.createWriter(function(fileWriter) {  
                                                fileWriter.write(f); // Note: write() can take a File or Blob object.  
                                }, errorHandler);  
                        }, errorHandler);  
                })(file);  
          
            }  
        }, errorHandler);  
};  
//---------------------------------------------
function successCallback(){
        console.log("---->successCallback.");
}
function opt_errorCallback(eee){
        console.log("this error:"+eee);
}
function errorHandler(e) {  
  var msg = '';  
  
  switch (e.code) {  
    case FileError.QUOTA_EXCEEDED_ERR:  
      msg = 'QUOTA_EXCEEDED_ERR';  
      break;  
    case FileError.NOT_FOUND_ERR:  
      msg = 'NOT_FOUND_ERR';  
      break;  
    case FileError.SECURITY_ERR:  
      msg = 'SECURITY_ERR';  
      break;  
    case FileError.INVALID_MODIFICATION_ERR:  
      msg = 'INVALID_MODIFICATION_ERR';  
      break;  
    case FileError.INVALID_STATE_ERR:  
      msg = 'INVALID_STATE_ERR';  
      break;  
    default:  
      msg = 'Unknown Error';  
      break;  
  };  
  
  console.log('Error1: ' + msg);  
} 
//window.webkitStorageInfo.requestQuota(TEMPORARY, 1024*1024, function(grantedBytes) {  
//      console.log("ccccccccccc");
//      window.requestFileSystem(TEMPORARY, grantedBytes, onInitFs, errorHandler);  
//      }, function(e) {  
//  console.log('Error', e);  
//});
</script>


参考http://www.cnblogs.com/zhwl/p/3201975.html



------------------------另一种本地存key value的方法----

<input type="button" onclick="test_save()" value="save"/>
<input type="button" onclick="test_clear()"  value="clear"/>
<pre>
        F12 Resources Local Storage
</pre>
<script type="text/javascript">
var jsonstr={'name':"haoning","no":123};
function save(dataModel){
        console.log(dataModel);
    var value = JSON.stringify(dataModel);//dataModel.serialize();
    window.localStorage['myname'] = value;
    localStorage.setItem("myage",12); 
    return value;
}

function clear(){
        console.log("---clear");
    if(window.localStorage['myname']){
                console.log("---delete myname myage");
        delete window.localStorage['myname']; 
        delete window.localStorage['myage'];       
    }   
}
function test_save(){
        save(jsonstr);
//      clear();
}
function test_clear(){
  clear();
}
//request = indexedDB.open("DataModel");
</script>

key value的形式存在浏览器上


还有一种叫appcache,参考jslinux-network中的吧
  • 大小: 71.2 KB
  • 大小: 33.5 KB
分享到:
评论

相关推荐

    电脑开机错误出现unknown filesystem该如何解决?.docx

    5. 取下启动 U 盘并重新启动电脑即可以进入以前的系统。 在修复成功后,我们可以取下启动 U 盘并重新启动电脑。这样,我们就可以重新进入以前的系统了。 解决电脑开机错误unknown filesystem的方法非常简单,我们...

    《基于YOLOv8的八段锦练习指导系统》(包含源码、完整数据集、可视化界面、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

    大语言模型教育应用中的知识冲突挑战与应对策略

    内容概要:本文详细探讨了大语言模型(LLMs)在教育应用中遇到的知识冲突问题,包括概念定义、事实陈述和逻辑推理层面的认知不一致性。文章分析了知识冲突的技术成因,如训练数据噪声、参数化知识表示的局限、推理机制的缺陷、模型架构的不足及外部知识的偏差,并探讨了这些因素对教育应用的深远影响。文中提出了多维度的解决路径,如通过数据增强优化知识表示、利用提示强化上下文连贯、开发量规完善模型评估等。此外,文章从社会文化的宏观视角剖析了知识冲突的外部驱动因素,探讨如何在多元异质、动态演进的社会建构语境中构建开放进取、兼容融通的智能教育应用体系。 适合人群:从事教育技术研究的学者、教育工作者、人工智能研究人员和技术开发者。 使用场景及目标:①帮助教育工作者理解大语言模型在教育应用中的局限性;②为技术人员提供优化大语言模型教育应用的具体策略;③促进教育人工智能技术的可靠性、适应性和普及性提升。 其他说明:文章强调了知识冲突的有效化解不仅能够提升大语言模型在教育场景中的应用价值,还将为人工智能在更广泛领域的可持续发展奠定坚实基础。

    《基于YOLOv8的家具鉴定系统》(包含源码、完整数据集、可视化界面、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

    数据结构day1-思维导图顺序表

    数据结构day1-思维导图顺序表

    STM32超声波红外避障小车

    STM32超声波红外避障小车项目通过STM32微控制器实现自动避障功能。硬件部分主要包括STM32开发板、超声波传感器、红外传感器、直流电机、电池模块和电机驱动模块。超声波传感器用于测量前方障碍物的距离,红外传感器帮助小车检测地面线路或障碍物。电机驱动模块通过STM32控制直流电机的转动,从而实现小车的前进、后退和转向。 在软件方面,STM32通过编写简单的避障算法,实时读取传感器数据,并根据环境信息控制小车的运动。当超声波传感器检测到障碍物时,系统会触发后退或转向操作,避免碰撞。

    哈尔滨工业大学DeepSeek公开课-从图灵测试到DeepSeek.pdf

    哈尔滨工业大学DeepSeek公开课-从图灵测试到DeepSeek.pdf

    《基于YOLOv8的冰上运动监测系统》(包含源码、完整数据集、可视化界面、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

    《基于YOLOv8的体育产业监测系统》(包含源码、完整数据集、可视化界面、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

    《基于YOLOv8的港口机械识别系统》(包含源码、完整数据集、可视化界面、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

    oooooomy_vchat_1742859071.zip

    app开发

    《基于YOLOv8的3D打印缺陷检测系统》(包含源码、完整数据集、可视化界面、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

    Screenshot_2025-03-31-19-36-01-657_com.UCMobile.jpg

    Screenshot_2025-03-31-19-36-01-657_com.UCMobile.jpg

    半导体过程控制篇 集成电路的可靠性仿真_03_31_153111.docx

    半导体过程控制篇 集成电路的可靠性仿真_03_31_153111.docx

    社交应用_鸿蒙OS_API12_高仿微信APP_开发示例_1742847098.zip

    社交应用_鸿蒙OS_API12_高仿微信APP_开发示例_1742847098.zip

    《基于YOLOv8的民间体育监测系统》(包含源码、完整数据集、可视化界面、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

    安卓_热更新_简化编译_HTHotFix框架_1742849446.zip

    app开发

    2024 最新版智慧消防全流程解决方案(含 BIM+IoT 技术应用 + 典型案例分析)

    2024 最新版智慧消防全流程解决方案(含 BIM+IoT 技术应用 + 典型案例分析)

    电商_微信小程序_学习项目_电商功能演示_1742849441.zip

    电商_微信小程序_学习项目_电商功能演示_1742849441.zip

    jiguang.zip

    jiguang.zip

Global site tag (gtag.js) - Google Analytics