百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>html5教程> h5+js实现当地文件读取和写入
分享文章到:

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

发布时间:09/01 来源:未知 浏览: 关键词:
这次给大家带来h5+js实现当地文件读取和写入,h5+js实现当地文件读取和写入的留意事项是什么,下面就是实战案例,一起来看一下。

代码如下:

读取当地文件

<!doctype html><html lang="en"><head>
    <meta charset="UTF-8">
    <title>Document</title></head><body>
    <p>
        <input type="file" id="files" style="display: none" onchange="fileImport();">
        <input type="button" id="fileImport" value="导入">
    </p>
    <script src="../js/jQuery/jquery-1.11.1.js"></script>
    <script>
        //点击导入按钮,使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);
            }
        }    </script></body></html>

写入文件

HTML5中与FileReader相对应的也有一个FileWriter,FileReader可以被Chrome、FF和Safari都支撑。要求必然版本以上的。 但是FileWriter好像只要被Chrome支撑.

代码如下:

//第一导入一个Js文件<script type="text/javascript" src="./JS/FileSaver.js" charset="utf-8"></script>//HTML中增加一个输出元素<input type="button" id="export" value="输出"/>//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,在网上寻了些办法,如下:

<!doctype html><html lang="en"><head>
    <meta charset="UTF-8">
    <title>Document</title></head><body><script type="text/javascript">
    //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<="6.0"){            //ie5.5,ie6.0
            file_url = obj.value;
        }else 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;
    }</script><h1>JS猎取文件域完全途径的办法,兼容不一样阅读器</h1><p id="text" style="color:#f00;"></p><input type="file" id="file" onchange="getvl(this)" /></body></html>

以上代码在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实现当地文件读取和写入的具体内容,更多请关注百分百源码网其它相关文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有150人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板