h5+js实现本地文件读取和写入

这次给大家带来h5+js实现本地文件读取和写入,h5+js实现本地文件读取和写入的注意事项有哪些,下面就是实战案例,一起来看一下。

代码如下:

读取本地文件

        Document    

//点击导入按钮,使files触发点击事件,然后完成读取文件的操作 $("#fileImport").click(function () { $("#files").click(); }) function fileImport() { //获取读取我文件的File对象 var selectedFile = document.getElementById('files').files[0]; var name = selectedFile.name;//读取选中文件的文件名 var size = selectedFile.size;//读取选中文件的大小 console.log("文件名:"+name+"大小:"+size); var reader = new FileReader();//这是核心,读取操作就是由它完成. //reader.readAsText(selectedFile);//读取文件的内容,也可以读取文件的URL reader.onload = function () { //当读取完成后回调这个函数,然后此时文件的内容存储到了result中,直接操作即可 console.log(this.result); } }

写入文件

HTML5中与FileReader相对应的也有一个FileWriter,FileReader可以被Chrome、FF和Safari都支持。要求一定版本以上的。 但是FileWriter似乎只有被Chrome支持.

代码如下:

//首先导入一个Js文件//HTML中添加一个导出元素//JS文件$("#export).click(function(){    var content = "这是直接使用HTML5进行导出的";    var blob = new Blob([content], {type: "text/plain;charset=utf-8"});    saveAs(blob, "file.txt");//saveAs(blob,filename)});

读取本地文件路径代码

在获取文件路径的遇到些问题,由于安全原因,新版的浏览器都不支持直接获取本地URL,在网上找了些方法,如下:

        Document    //FX获取文件路径方法    function readFileFirefox(fileBrowser) {        try {            netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");        }        catch (e) {            alert('无法访问本地文件,由于浏览器安全设置。为了克服这一点,请按照下列步骤操作:(1)在地址栏输入"about:config";(2) 右键点击并选择 New->Boolean; (3) 输入"signed.applets.codebase_principal_support" (不含引号)作为一个新的首选项的名称;(4) 点击OK并试着重新加载文件');            return;        }        var fileName=fileBrowser.value; //这一步就能得到客户端完整路径。下面的是否判断的太复杂,还有下面得到ie的也很复杂。        var file = Components.classes["@mozilla.org/file/local;1"]            .createInstance(Components.interfaces.nsILocalFile);        try {            // Back slashes for windows            file.initWithPath( fileName.replace(///g, "\\") );        }        catch(e) {            if (e.result!=Components.results.NS_ERROR_FILE_UNRECOGNIZED_PATH) throw e;            alert("File '" + fileName + "' cannot be loaded: relative paths are not allowed. Please provide an absolute path to this file.");            return;        }        if ( file.exists() == false ) {            alert("File '" + fileName + "' not found.");            return;        }        return file.path;    }    //根据不同浏览器获取路径    function getvl(obj){//判断浏览器        var Sys = {};        var ua = navigator.userAgent.toLowerCase();        var s;        (s = ua.match(/msie ([d.]+)/)) ? Sys.ie = s[1] :            (s = ua.match(/firefox/([d.]+)/)) ? Sys.firefox = s[1] :                (s = ua.match(/chrome/([d.]+)/)) ? Sys.chrome = s[1] :                    (s = ua.match(/opera.([d.]+)/)) ? Sys.opera = s[1] :                        (s = ua.match(/version/([d.]+).*safari/)) ? Sys.safari = s[1] : 0;        var file_url="";        if(Sys.ie="7.0"){            //ie7,ie8            obj.select();            file_url = document.selection.createRange().text;        }else if(Sys.firefox){            //fx            //file_url = document.getElementById("file").files[0].getAsDataURL();//获取的路径为FF识别的加密字符串            file_url = readFileFirefox(obj);        }else if(Sys.chrome){            file_url = obj.value;        }        //alert(file_url);        document.getElementById("text").innerHTML="获取文件域完整路径为:"+file_url;    }

JS获取文件域完整路径的方法,兼容不同浏览器

以上代码在IE 6 7 8均正常使用,在IE9下,document.selection.createRange()拒绝访问,看来安全性有所提高。

最后测试发现,在IE9下,如果file控件获得焦点,则document.selection.createRange()拒绝访问,

因此,只需要在obj.select()后面加一句obj.blur()即可。

else if(Sys.ie>="7.0"){  //ie7,ie8  obj.select();  obj.blur();  file_url = document.selection.createRange().text; }  // obj = document.getElementById("file");

以上就是h5+js实现本地文件读取和写入的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1545958.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月21日 17:42:51
下一篇 2025年12月21日 17:43:03

相关推荐

  • HTML5联合canvas实现图片压缩

    这次给大家带来html5联合canvas实现图片压缩,主要以代码的形式体现,下面就是实战案例,一起来看一下。 lianxi 名字: 上传: button var file = document.querySelector(‘#fileimage’) var username = document.q…

    好文分享 2025年12月21日
    000
  • HTML5之网页存储

    这次给大家带来HTML5之网页存储 ,HTML5之网页存储 的注意事项有哪些,下面就是实战案例,一起来看一下。 html5 网页存储 web storage 一、认识Web Storage Web Storage是一种将少量数据存储在客户端(client)磁盘的技术。只要支持WebStorage A…

    2025年12月21日
    000
  • html5 viewport总结讲述

    本篇文章是关于HTML5中的viewport的一个讲述,对于HTML5中viewport不太熟悉的同学,我们可以一起看看本篇文章!来详细的了解一下html5中的viewport 总结下来无非围绕三个问题: 1、为什么要设置虚拟窗口 起初是为了使得虚拟窗口的分辨率和pc端接近,这样虚拟窗口依然能够完整…

    好文分享 2025年12月21日
    000
  • 讲讲HTML5中被废弃的标签

    本篇文章讲述了HTML5中被废弃的标签,大家对HTML5中被废弃的标签不了解的话那么我们就一起来看看本篇文章吧, 好了废话少说进入正题吧!切记废弃的html标签最好不要使用哦! 在笔试或者面试中常常会遇到html5新标准的问题,下面是总结的html5废弃标签。 第一类:表现性元素 basefont …

    好文分享 2025年12月21日
    000
  • 了解一下HTML5中新增加的标签

     本篇文章讲述了HTML5中新增加的标签,大家对HTML5中新增加的标签不了解的话那么我们就一起来看看本篇文章吧, 好了废话少说进入正题吧! 在笔试或者面试中常常会遇到html5新标准的问题,如新增了哪些新标签,api,或者干脆问新增了哪些新特性,下面是总结的html5新增标签。 html5中新增标…

    好文分享 2025年12月21日
    000
  • 企业开发中使用H5有哪些注意事项

    这次给大家带来企业开发中使用h5有哪些注意事项,企业开发中使用h5的注意事项有哪些,下面就是实战案例,一起来看一下。 3在企业开发中,想让多个盒子的顶部对齐,我们可以让多个盒子同时浮动;或者通过定位微调,使他们顶部对齐;2.去掉控件系统自带的边框 :border:none;3.在企业开发中,css中…

    好文分享 2025年12月21日
    000
  • H5中的定位

    这次给大家带来h5中的定位,h5中定位的注意事项有哪些,下面就是实战案例,一起来看一下。 一.定位流分类 1.1相对定位1.2绝对定位1.3固定定位1.4静态定位 二.什么是相对定位? 相对定位就是相对于自己以前在标准流中的位置来移动position: relative; 相对定位注意点 1.相对定…

    好文分享 2025年12月21日
    000
  • JavaScript数组-字符串-数学函数

    这次给大家带来javascript数组-字符串-数学函数,使用javascript数组-字符串-数学函数的注意事项有哪些,下面就是实战案例,一起来看一下。 数组方法里push、pop、shift、unshift、join、split分别是什么作用。push()方法添加一个或多个元素到数组的末尾,并返…

    好文分享 2025年12月21日
    000
  • HTML5中form表单标签用法详解

    本文主要和大家分享HTML5中form表单标签用法详解,会以代码实例来和大家分享form的用法,希望能帮助到大家。 语法: 结束,表单都必须放在其之间。   2.method 传送方式,  get/post  是后端程序员考虑的问题   3.action  浏览者输入的数据被传送到的地方,比如一个p…

    好文分享 2025年12月21日
    000
  • HTML5 Canvas的交互式地铁线路图实现代码

    地图稍微内容有点多,要全部展示,字显得有点小了,但是没关系,可以按照需求放大缩小,字体和绘制的内容并不会失真,毕竟都是用矢量绘制的~ 界面生成 底层的 p 是通过 ht.graph.GraphView 组件生成的,然后就可以利用 HT for Web 提供好的方法,调用 canvas 画笔随便绘制就…

    2025年12月21日
    000
  • H5中meta标签及作用

    本文主要和大家分享h5中meta标签及作用,希望能帮助到大家。 H5标准声明,使用 HTML5 doctype,不区分大小写 // 标准的 lang 属性写法 // 声明文档使用的字符编码 // 优先使用 IE 最新版本和 Chrome // 页面描述 // 页面关键词 // 网页作者 // 搜索引…

    好文分享 2025年12月21日
    000
  • MUI框架使用HTML5实现二维码扫描功能

    一、简介         Barcode模块管理条码扫描,提供常见的条码(二维码及一维码)的扫描识别功能,可调用设备的摄像头对条码图片扫描进行数据输入。通过plus.barcode可获取条码码管理对象。 二、实现的效果 三、实现 代码 立即学习“前端免费学习笔记(深入)”; #bcid{ width…

    2025年12月21日
    000
  • JavaScript的BOM

    这次给大家带来javascript的bom,使用javascript的bom的注意事项有哪些,下面就是实战案例,一起来看一下。 location对象location对象提供了与当前窗口中加载的文档有关的信息,还提供了一些导航的功能,它既是window对象的属性,也是document对象的属性。语法:…

    好文分享 2025年12月21日
    000
  • JavaScript实现鼠标滚轮控制页面图片切换

    鼠标上的滚轮是一个不错的东东,为什么这么说,因为它能帮助我们快速的浏览网页,快速的进行长篇文章的阅读。对于web前端的我们来说又怎么能不注重这个鼠标滚轮呢,那么它能如何让用户更好的浏览网页呢?本文主要介绍javascript实现鼠标滚轮控制页面图片切换功能,涉及javascript事件响应及页面元素…

    好文分享 2025年12月21日
    000
  • h5和c3怎样做出太阳系行星运转的动画效果

    这次给大家带来h5和c3怎样做出太阳系行星运转的动画效果,用h5和c3做出太阳系行星运转动画效果的注意事项有哪些,下面就是实战案例,一起来看一下。 做一个太阳系八大行星的运转动画,不包括行星的卫星,所有行星围绕太阳公转,行星采用纯色,暂时没有自转。 动画中包括:太阳及各行星,运行轨道,行星公转动画。…

    好文分享 2025年12月21日
    000
  • h5怎样实现输入框提示语+正常文本框提示语

    这次给大家带来h5怎样实现输入框提示语+正常文本框提示语,实现h5的输入框提示语+正常文本框提示语的注意事项有哪些,下面就是实战案例,一起来看一下。 placeholder=”  请输入用户名/手机号”; html5输入框提示语。 相信看了这些案例你已经掌握了方法,更多精彩请…

    好文分享 2025年12月21日
    000
  • h5的定时器怎样实现进度条功能

    这次给大家带来h5的定时器怎样实现进度条功能,h5的定时器实现进度条功能的注意事项有哪些,下面就是实战案例,一起来看一下。 在requestAnimationFrame出现之前,我们一般都用setTimeout和setInterval,那么html5为什么新增一个requestAnimationFr…

    好文分享 2025年12月21日
    000
  • 怎样用H5预览PDF格式的文档

    这次给大家带来怎样用h5预览pdf格式的文档,h5预览pdf格式文档的注意事项有哪些,下面就是实战案例,一起来看一下。 简介 PDF.js is a Portable Document Format (PDF) viewer that is built with HTML5. PDF.js is c…

    好文分享 2025年12月21日
    000
  • H5的拖放应该如何实现

    这次给大家带来h5的拖放应该如何实现,实现h5拖放效果应该的注意事项有哪些,下面就是实战案例,一起来看一下。 简介 拖放是一种常见的特性,即抓取对象以后拖到另一个位置。 在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放。 先点击一个小例子:在用户开始拖动 元素时执行 JavaScript …

    好文分享 2025年12月21日
    000
  • H5的页面中怎样调用APP功能

    这次给大家带来h5的页面中怎样调用app功能,在h5的页面中调用app功能的注意事项有哪些,下面就是实战案例,一起来看一下。 在市面上经常见到这种功能现如今应该非常普遍了,淘宝H5,知乎H5等等。。。 点击后会调起APP或者打开下载页面或者直接进行下载。 但是我这里发现知乎的这个功能有点不一样 他的…

    好文分享 2025年12月21日
    000

发表回复

登录后才能评论
关注微信