搜尋
首頁web前端html教學h5+js實作本機檔案讀取與寫入

h5+js實作本機檔案讀取與寫入

Mar 24, 2018 am 11:38 AM
文件讀取

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

代码如下:

读取本地文件

nbsp;html>
    <meta>
    <title>Document</title>
    <p>
        <input>
        <input>
    </p>
    <script></script>
    <script>
        //点击导入按钮,使files触发点击事件,然后完成读取文件的操作
        $("#fileImport").click(function () {
            $("#files").click();
        })        function fileImport() {            //获取读取我文件的File对象
            var selectedFile = document.getElementById(&#39;files&#39;).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>

写入文件

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

代码如下:

//首先导入一个Js文件<script></script>//HTML中添加一个导出元素<input>//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,在网上找了些方法,如下:

nbsp;html>
    <meta>
    <title>Document</title><script>
    //FX获取文件路径方法
    function readFileFirefox(fileBrowser) {        try {
            netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
        }        catch (e) {
            alert(&#39;无法访问本地文件,由于浏览器安全设置。为了克服这一点,请按照下列步骤操作:(1)在地址栏输入"about:config";(2) 右键点击并选择 New->Boolean; (3) 输入"signed.applets.codebase_principal_support" (不含引号)作为一个新的首选项的名称;(4) 点击OK并试着重新加载文件&#39;);            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 &#39;" + fileName + "&#39; cannot be loaded: relative paths are not allowed. Please provide an absolute path to this file.");            return;
        }        if ( file.exists() == false ) {
            alert("File &#39;" + fileName + "&#39; 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 id="JS获取文件域完整路径的方法-兼容不同浏览器">JS获取文件域完整路径的方法,兼容不同浏览器</h1><p></p><input>

以上代码在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實作本機檔案讀取與寫入的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
舉一個帶有屬性的HTML標籤的示例。舉一個帶有屬性的HTML標籤的示例。May 16, 2025 am 12:02 AM

HTML標籤和屬性的使用方法包括:1.基本用法:使用標籤如和,通過屬性如src和href添加必要信息。 2.高級用法:使用data-*自定義屬性實現複雜交互。 3.避免常見錯誤:確保屬性值用引號包圍。 4.性能優化:保持簡潔,使用標準屬性和CSS類名,確保圖像有alt屬性。掌握這些將提升網頁開發技能。

HTML標籤和HTML屬性有什麼區別?HTML標籤和HTML屬性有什麼區別?May 14, 2025 am 12:01 AM

HTMLtagsdefinethestructureofawebpage,whileattributesaddfunctionalityanddetails.1)Tagslike,,andoutlinethecontent'splacement.2)Attributessuchassrc,class,andstyleenhancetagsbyspecifyingimagesources,styling,andmore,improvingfunctionalityandappearance.

HTML的未來:進化和趨勢HTML的未來:進化和趨勢May 13, 2025 am 12:01 AM

HTML的未來將朝著更加語義化、功能化和模塊化的方向發展。 1)語義化將使標籤更明確地描述內容,提升SEO和無障礙訪問。 2)功能化將引入新元素和屬性,滿足用戶需求。 3)模塊化將支持組件化開發,提高代碼復用性。

為什麼HTML屬性對Web開發很重要?為什麼HTML屬性對Web開發很重要?May 12, 2025 am 12:01 AM

htmlattributesarecrucialinwebdevelopment forcontrollingBehavior,外觀和功能

Alt屬性的目的是什麼?為什麼重要?Alt屬性的目的是什麼?為什麼重要?May 11, 2025 am 12:01 AM

alt屬性是HTML中標籤的重要部分,用於提供圖片的替代文本。 1.當圖片無法加載時,alt屬性中的文本會顯示,提升用戶體驗。 2.屏幕閱讀器使用alt屬性幫助視障用戶理解圖片內容。 3.搜索引擎索引alt屬性中的文本,提高網頁的SEO排名。

HTML,CSS和JavaScript:示例和實際應用HTML,CSS和JavaScript:示例和實際應用May 09, 2025 am 12:01 AM

HTML、CSS和JavaScript在網頁開發中的作用分別是:1.HTML用於構建網頁結構;2.CSS用於美化網頁外觀;3.JavaScript用於實現動態交互。通過標籤、樣式和腳本,這三者共同構築了現代網頁的核心功能。

如何在標籤上設置lang屬性?為什麼這很重要?如何在標籤上設置lang屬性?為什麼這很重要?May 08, 2025 am 12:03 AM

設置標籤的lang屬性是優化網頁可訪問性和SEO的關鍵步驟。 1)在標籤中設置lang屬性,如。 2)在多語言內容中,為不同語言部分設置lang屬性,如。 3)使用符合ISO639-1標準的語言代碼,如"en"、"fr"、"zh"等。正確設置lang屬性可以提高網頁的可訪問性和搜索引擎排名。

HTML屬性的目的是什麼?HTML屬性的目的是什麼?May 07, 2025 am 12:01 AM

htmlattributeseresene forenhancingwebelements'functionalityandAppearance.TheyAdDinformationTodeFineBehavior,外觀和互動,使網站互動,響應式,visalalyAppealing.AttributesLikutesLikeSlikEslikesrc,href,href,href,類,類型,類型,和dissabledtransfransformformformformformformformformformformformformformformforment

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)