精华内容
下载资源
问答
  • JavaScript写入文件到本地

    万次阅读 2018-01-12 15:23:43
    IE 可以通过 VB 插件的方式进行,而 Chrome 和 firefox 都不支持 JavaScript 向本地写入文件,所以 VB 插件的方式存在兼容性问题。 那有没有适合的方法呢?答案是肯定的,我们可以通过 FileSaver.js 这个小插件实现...

     工作中有时需要通过 JavaScript 保存文件到本地,我们都知道 JavaScript 基于安全的考虑,是不允许直接操作本地文件的。
    IE 可以通过 VB 插件的方式进行,而 Chrome 和 firefox 都不支持 JavaScript 向本地写入文件,所以 VB 插件的方式存在兼容性问题。
    那有没有适合的方法呢?答案是肯定的,我们可以通过 FileSaver.js 这个小插件实现我们的需求。下面看一段具体的代码吧:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    /**
      * 下载文件
      */
    var  downloadTextFile =  function (mobileCode) {
         if (isEmpty(mobileCode)) {
             mobileCode =  '' ;
         }
         
         var  file =  new  File([mobileCode],  "手机号.txt" , { type:  "text/plain;charset=utf-8"  });
         saveAs(file);
    }

      这个示例是向本地存储一个名字叫“手机号.txt”的文本文件,采用的字符编码格式为“UTF-8”,这样就避免的中文乱码的问题。聪明的你也赶快试试吧!

     

     

    附 FileSaver.js 文件的完整源码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    /* FileSaver.js
      * A saveAs() FileSaver implementation.
      * 1.3.2
      * 2016-06-16 18:25:19
      *
      * By Eli Grey, http://eligrey.com
      * License: MIT
      *   See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md
      */
     
    /*global self */
    /*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */
     
    /*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */
     
    var  saveAs = saveAs || ( function (view) {
         "use strict" ;
         // IE <10 is explicitly unsupported
         if  ( typeof  view ===  "undefined"  ||  typeof  navigator !==  "undefined"  && /MSIE [1-9]\./.test(navigator.userAgent)) {
             return ;
         }
         var
               doc = view.document
               // only get URL when necessary in case Blob.js hasn't overridden it yet
             , get_URL =  function () {
                 return  view.URL || view.webkitURL || view;
             }
             , save_link = doc.createElementNS( "http://www.w3.org/1999/xhtml" "a" )
             , can_use_save_link =  "download"  in  save_link
             , click =  function (node) {
                 var  event =  new  MouseEvent( "click" );
                 node.dispatchEvent(event);
             }
             , is_safari = /constructor/i.test(view.HTMLElement) || view.safari
             , is_chrome_ios =/CriOS\/[\d]+/.test(navigator.userAgent)
             , throw_outside =  function (ex) {
                 (view.setImmediate || view.setTimeout)( function () {
                     throw  ex;
                 }, 0);
             }
             , force_saveable_type =  "application/octet-stream"
             // the Blob API is fundamentally broken as there is no "downloadfinished" event to subscribe to
             , arbitrary_revoke_timeout = 1000 * 40  // in ms
             , revoke =  function (file) {
                 var  revoker =  function () {
                     if  ( typeof  file ===  "string" ) {  // file is an object URL
                         get_URL().revokeObjectURL(file);
                     else  // file is a File
                         file.remove();
                     }
                 };
                 setTimeout(revoker, arbitrary_revoke_timeout);
             }
             , dispatch =  function (filesaver, event_types, event) {
                 event_types = [].concat(event_types);
                 var  i = event_types.length;
                 while  (i--) {
                     var  listener = filesaver[ "on"  + event_types[i]];
                     if  ( typeof  listener ===  "function" ) {
                         try  {
                             listener.call(filesaver, event || filesaver);
                         catch  (ex) {
                             throw_outside(ex);
                         }
                     }
                 }
             }
             , auto_bom =  function (blob) {
                 // prepend BOM for UTF-8 XML and text/* types (including HTML)
                 // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF
                 if  (/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)) {
                     return  new  Blob([String.fromCharCode(0xFEFF), blob], {type: blob.type});
                 }
                 return  blob;
             }
             , FileSaver =  function (blob, name, no_auto_bom) {
                 if  (!no_auto_bom) {
                     blob = auto_bom(blob);
                 }
                 // First try a.download, then web filesystem, then object URLs
                 var
                       filesaver =  this
                     , type = blob.type
                     , force = type === force_saveable_type
                     , object_url
                     , dispatch_all =  function () {
                         dispatch(filesaver,  "writestart progress write writeend" .split( " " ));
                     }
                     // on any filesys errors revert to saving with object URLs
                     , fs_error =  function () {
                         if  ((is_chrome_ios || (force && is_safari)) && view.FileReader) {
                             // Safari doesn't allow downloading of blob urls
                             var  reader =  new  FileReader();
                             reader.onloadend =  function () {
                                 var  url = is_chrome_ios ? reader.result : reader.result.replace(/^data:[^;]*;/,  'data:attachment/file;' );
                                 var  popup = view.open(url,  '_blank' );
                                 if (!popup) view.location.href = url;
                                 url=undefined;  // release reference before dispatching
                                 filesaver.readyState = filesaver.DONE;
                                 dispatch_all();
                             };
                             reader.readAsDataURL(blob);
                             filesaver.readyState = filesaver.INIT;
                             return ;
                         }
                         // don't create more object URLs than needed
                         if  (!object_url) {
                             object_url = get_URL().createObjectURL(blob);
                         }
                         if  (force) {
                             view.location.href = object_url;
                         else  {
                             var  opened = view.open(object_url,  "_blank" );
                             if  (!opened) {
                                 // Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html
                                 view.location.href = object_url;
                             }
                         }
                         filesaver.readyState = filesaver.DONE;
                         dispatch_all();
                         revoke(object_url);
                     }
                 ;
                 filesaver.readyState = filesaver.INIT;
     
                 if  (can_use_save_link) {
                     object_url = get_URL().createObjectURL(blob);
                     setTimeout( function () {
                         save_link.href = object_url;
                         save_link.download = name;
                         click(save_link);
                         dispatch_all();
                         revoke(object_url);
                         filesaver.readyState = filesaver.DONE;
                     });
                     return ;
                 }
     
                 fs_error();
             }
             , FS_proto = FileSaver.prototype
             , saveAs =  function (blob, name, no_auto_bom) {
                 return  new  FileSaver(blob, name || blob.name ||  "download" , no_auto_bom);
             }
         ;
         // IE 10+ (native saveAs)
         if  ( typeof  navigator !==  "undefined"  && navigator.msSaveOrOpenBlob) {
             return  function (blob, name, no_auto_bom) {
                 name = name || blob.name ||  "download" ;
     
                 if  (!no_auto_bom) {
                     blob = auto_bom(blob);
                 }
                 return  navigator.msSaveOrOpenBlob(blob, name);
             };
         }
     
         FS_proto.abort =  function (){};
         FS_proto.readyState = FS_proto.INIT = 0;
         FS_proto.WRITING = 1;
         FS_proto.DONE = 2;
     
         FS_proto.error =
         FS_proto.onwritestart =
         FS_proto.onprogress =
         FS_proto.onwrite =
         FS_proto.onabort =
         FS_proto.onerror =
         FS_proto.onwriteend =
             null ;
     
         return  saveAs;
    }(
            typeof  self !==  "undefined"  && self
         ||  typeof  window !==  "undefined"  && window
         ||  this .content
    ));
    // `self` is undefined in Firefox for Android content script context
    // while `this` is nsIContentFrameMessageManager
    // with an attribute `content` that corresponds to the window
     
    if  ( typeof  module !==  "undefined"  && module.exports) {
       module.exports.saveAs = saveAs;
    else  if  (( typeof  define !==  "undefined"  && define !==  null ) && (define.amd !==  null )) {
       define( "FileSaver.js" function () {
         return  saveAs;
       });
    }

      

    展开全文
  • 主要介绍了JavaScript实现写入文件到本地的方法,结合实例形式分析了基于FileSaver.js插件实现保存文件本地的相关操作技巧,并附带FileSaver.js插件完整源码,需要的朋友可以参考下
  • 这篇文章主要介绍了JavaScript实现写入文件到本地的方法,结合实例形式分析了基于FileSaver.js插件实现保存文件本地的相关操作技巧,并附带FileSaver.js插件完整源码,需要的朋友可以参考下本文实例讲述了JavaScript...

    这篇文章主要介绍了JavaScript实现写入文件到本地的方法,结合实例形式分析了基于FileSaver.js插件实现保存文件到本地的相关操作技巧,并附带FileSaver.js插件完整源码,需要的朋友可以参考下

    本文实例讲述了JavaScript实现写入文件到本地的方法。分享给大家供大家参考,具体如下:

    工作中有时需要通过 JavaScript 保存文件到本地,我们都知道 JavaScript 基于安全的考虑,是不允许直接操作本地文件的。

    IE 可以通过 VB 插件的方式进行,而 Chrome 和 firefox 都不支持 JavaScript 向本地写入文件,所以 VB 插件的方式存在兼容性问题。

    那有没有适合的方法呢?答案是肯定的,我们可以通过 FileSaver.js 这个小插件实现我们的需求。下面看一段具体的代码吧:

    /**

    * 下载文件

    */

    var downloadTextFile = function(mobileCode) {

    if(isEmpty(mobileCode)) {

    mobileCode = '';

    }

    var file = new File([mobileCode], "手机号.txt", { type: "text/plain;charset=utf-8" });

    saveAs(file);

    }

    这个示例是向本地存储一个名字叫“手机号.txt”的文本文件,采用的字符编码格式为“UTF-8”,这样就避免的中文乱码的问题。聪明的你也赶快试试吧!

    附 FileSaver.js 文件的完整源码:

    /* FileSaver.js

    * A saveAs() FileSaver implementation.

    * 1.3.2

    * 2016-06-16 18:25:19

    *

    * By Eli Grey, http://eligrey.com

    * License: MIT

    * See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md

    */

    /*global self */

    /*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */

    /*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */

    var saveAs = saveAs || (function(view) {

    "use strict";

    // IE <10 is explicitly unsupported

    if (typeof view === "undefined" || typeof navigator !== "undefined" && /MSIE [1-9]\./.test(navigator.userAgent)) {

    return;

    }

    var

    doc = view.document

    // only get URL when necessary in case Blob.js hasn't overridden it yet

    , get_URL = function() {

    return view.URL || view.webkitURL || view;

    }

    , save_link = doc.createElementNS("http://www.w3.org/1999/xhtml", "a")

    , can_use_save_link = "download" in save_link

    , click = function(node) {

    var event = new MouseEvent("click");

    node.dispatchEvent(event);

    }

    , is_safari = /constructor/i.test(view.HTMLElement) || view.safari

    , is_chrome_ios =/CriOS\/[\d]+/.test(navigator.userAgent)

    , throw_outside = function(ex) {

    (view.setImmediate || view.setTimeout)(function() {

    throw ex;

    }, 0);

    }

    , force_saveable_type = "application/octet-stream"

    // the Blob API is fundamentally broken as there is no "downloadfinished" event to subscribe to

    , arbitrary_revoke_timeout = 1000 * 40 // in ms

    , revoke = function(file) {

    var revoker = function() {

    if (typeof file === "string") { // file is an object URL

    get_URL().revokeObjectURL(file);

    } else { // file is a File

    file.remove();

    }

    };

    setTimeout(revoker, arbitrary_revoke_timeout);

    }

    , dispatch = function(filesaver, event_types, event) {

    event_types = [].concat(event_types);

    var i = event_types.length;

    while (i--) {

    var listener = filesaver["on" + event_types[i]];

    if (typeof listener === "function") {

    try {

    listener.call(filesaver, event || filesaver);

    } catch (ex) {

    throw_outside(ex);

    }

    }

    }

    }

    , auto_bom = function(blob) {

    // prepend BOM for UTF-8 XML and text/* types (including HTML)

    // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF

    if (/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)) {

    return new Blob([String.fromCharCode(0xFEFF), blob], {type: blob.type});

    }

    return blob;

    }

    , FileSaver = function(blob, name, no_auto_bom) {

    if (!no_auto_bom) {

    blob = auto_bom(blob);

    }

    // First try a.download, then web filesystem, then object URLs

    var

    filesaver = this

    , type = blob.type

    , force = type === force_saveable_type

    , object_url

    , dispatch_all = function() {

    dispatch(filesaver, "writestart progress write writeend".split(" "));

    }

    // on any filesys errors revert to saving with object URLs

    , fs_error = function() {

    if ((is_chrome_ios || (force && is_safari)) && view.FileReader) {

    // Safari doesn't allow downloading of blob urls

    var reader = new FileReader();

    reader.onloadend = function() {

    var url = is_chrome_ios ? reader.result : reader.result.replace(/^data:[^;]*;/, 'data:attachment/file;');

    var popup = view.open(url, '_blank');

    if(!popup) view.location.href = url;

    url=undefined; // release reference before dispatching

    filesaver.readyState = filesaver.DONE;

    dispatch_all();

    };

    reader.readAsDataURL(blob);

    filesaver.readyState = filesaver.INIT;

    return;

    }

    // don't create more object URLs than needed

    if (!object_url) {

    object_url = get_URL().createObjectURL(blob);

    }

    if (force) {

    view.location.href = object_url;

    } else {

    var opened = view.open(object_url, "_blank");

    if (!opened) {

    // Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html

    view.location.href = object_url;

    }

    }

    filesaver.readyState = filesaver.DONE;

    dispatch_all();

    revoke(object_url);

    }

    ;

    filesaver.readyState = filesaver.INIT;

    if (can_use_save_link) {

    object_url = get_URL().createObjectURL(blob);

    setTimeout(function() {

    save_link.href = object_url;

    save_link.download = name;

    click(save_link);

    dispatch_all();

    revoke(object_url);

    filesaver.readyState = filesaver.DONE;

    });

    return;

    }

    fs_error();

    }

    , FS_proto = FileSaver.prototype

    , saveAs = function(blob, name, no_auto_bom) {

    return new FileSaver(blob, name || blob.name || "download", no_auto_bom);

    }

    ;

    // IE 10+ (native saveAs)

    if (typeof navigator !== "undefined" && navigator.msSaveOrOpenBlob) {

    return function(blob, name, no_auto_bom) {

    name = name || blob.name || "download";

    if (!no_auto_bom) {

    blob = auto_bom(blob);

    }

    return navigator.msSaveOrOpenBlob(blob, name);

    };

    }

    FS_proto.abort = function(){};

    FS_proto.readyState = FS_proto.INIT = 0;

    FS_proto.WRITING = 1;

    FS_proto.DONE = 2;

    FS_proto.error =

    FS_proto.onwritestart =

    FS_proto.onprogress =

    FS_proto.onwrite =

    FS_proto.onabort =

    FS_proto.onerror =

    FS_proto.onwriteend =

    null;

    return saveAs;

    }(

    typeof self !== "undefined" && self

    || typeof window !== "undefined" && window

    || this.content

    ));

    // `self` is undefined in Firefox for Android content script context

    // while `this` is nsIContentFrameMessageManager

    // with an attribute `content` that corresponds to the window

    if (typeof module !== "undefined" && module.exports) {

    module.exports.saveAs = saveAs;

    } else if ((typeof define !== "undefined" && define !== null) && (define.amd !== null)) {

    define("FileSaver.js", function() {

    return saveAs;

    });

    }

    上面是我整理给大家的,希望今后会对大家有帮助。

    相关文章:

    展开全文
  • js写入文件的方式

    千次阅读 2018-04-16 17:34:00
    // 以下为原文为方便效果,注释后直接写入 // var downloadTextFile = function(mobileCode) { // if(isEmpty(mobileCode)) { // mobileCode ="" ; // alert(111) // } // var file = new File([mobileCode], ...

     

    度娘找到,在谷歌等浏览器下都可使用

    Html内容:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <script src="FileSaver.js"></script>
    </head>
    <body>
    
        <input type="text">
     <script>
            /**
     * 下载文件
     */
    
        mobileCode='111333222'
        var file = new File([mobileCode], "手机号.txt", { type: "text/plain;charset=utf-8" });
        saveAs(file);
    
    // 以下为原文为方便效果,注释后直接写入
    // var downloadTextFile = function(mobileCode) {
    //     if(isEmpty(mobileCode)) {
    //         mobileCode ="" ;
    //         alert(111)
    //     }
         
    //     var file = new File([mobileCode], "手机号.txt", { type: "text/plain;charset=utf-8" });
    //     saveAs(file);
    // }
    </script>
    </body>
    </html>

     FileSaver.js内容:

    /* FileSaver.js
     * A saveAs() FileSaver implementation.
     * 1.3.2
     * 2016-06-16 18:25:19
     *
     * By Eli Grey, http://eligrey.com
     * License: MIT
     *   See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md
     */
     
    /*global self */
    /*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */
     
    /*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */
     
    var saveAs = saveAs || (function(view) {
        "use strict";
        // IE <10 is explicitly unsupported
        if (typeof view === "undefined" || typeof navigator !== "undefined" && /MSIE [1-9]\./.test(navigator.userAgent)) {
            return;
        }
        var
              doc = view.document
              // only get URL when necessary in case Blob.js hasn't overridden it yet
            , get_URL = function() {
                return view.URL || view.webkitURL || view;
            }
            , save_link = doc.createElementNS("http://www.w3.org/1999/xhtml", "a")
            , can_use_save_link = "download" in save_link
            , click = function(node) {
                var event = new MouseEvent("click");
                node.dispatchEvent(event);
            }
            , is_safari = /constructor/i.test(view.HTMLElement) || view.safari
            , is_chrome_ios =/CriOS\/[\d]+/.test(navigator.userAgent)
            , throw_outside = function(ex) {
                (view.setImmediate || view.setTimeout)(function() {
                    throw ex;
                }, 0);
            }
            , force_saveable_type = "application/octet-stream"
            // the Blob API is fundamentally broken as there is no "downloadfinished" event to subscribe to
            , arbitrary_revoke_timeout = 1000 * 40 // in ms
            , revoke = function(file) {
                var revoker = function() {
                    if (typeof file === "string") { // file is an object URL
                        get_URL().revokeObjectURL(file);
                    } else { // file is a File
                        file.remove();
                    }
                };
                setTimeout(revoker, arbitrary_revoke_timeout);
            }
            , dispatch = function(filesaver, event_types, event) {
                event_types = [].concat(event_types);
                var i = event_types.length;
                while (i--) {
                    var listener = filesaver["on" + event_types[i]];
                    if (typeof listener === "function") {
                        try {
                            listener.call(filesaver, event || filesaver);
                        } catch (ex) {
                            throw_outside(ex);
                        }
                    }
                }
            }
            , auto_bom = function(blob) {
                // prepend BOM for UTF-8 XML and text/* types (including HTML)
                // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF
                if (/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)) {
                    return new Blob([String.fromCharCode(0xFEFF), blob], {type: blob.type});
                }
                return blob;
            }
            , FileSaver = function(blob, name, no_auto_bom) {
                if (!no_auto_bom) {
                    blob = auto_bom(blob);
                }
                // First try a.download, then web filesystem, then object URLs
                var
                      filesaver = this
                    , type = blob.type
                    , force = type === force_saveable_type
                    , object_url
                    , dispatch_all = function() {
                        dispatch(filesaver, "writestart progress write writeend".split(" "));
                    }
                    // on any filesys errors revert to saving with object URLs
                    , fs_error = function() {
                        if ((is_chrome_ios || (force && is_safari)) && view.FileReader) {
                            // Safari doesn't allow downloading of blob urls
                            var reader = new FileReader();
                            reader.onloadend = function() {
                                var url = is_chrome_ios ? reader.result : reader.result.replace(/^data:[^;]*;/, 'data:attachment/file;');
                                var popup = view.open(url, '_blank');
                                if(!popup) view.location.href = url;
                                url=undefined; // release reference before dispatching
                                filesaver.readyState = filesaver.DONE;
                                dispatch_all();
                            };
                            reader.readAsDataURL(blob);
                            filesaver.readyState = filesaver.INIT;
                            return;
                        }
                        // don't create more object URLs than needed
                        if (!object_url) {
                            object_url = get_URL().createObjectURL(blob);
                        }
                        if (force) {
                            view.location.href = object_url;
                        } else {
                            var opened = view.open(object_url, "_blank");
                            if (!opened) {
                                // Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html
                                view.location.href = object_url;
                            }
                        }
                        filesaver.readyState = filesaver.DONE;
                        dispatch_all();
                        revoke(object_url);
                    }
                ;
                filesaver.readyState = filesaver.INIT;
     
                if (can_use_save_link) {
                    object_url = get_URL().createObjectURL(blob);
                    setTimeout(function() {
                        save_link.href = object_url;
                        save_link.download = name;
                        click(save_link);
                        dispatch_all();
                        revoke(object_url);
                        filesaver.readyState = filesaver.DONE;
                    });
                    return;
                }
     
                fs_error();
            }
            , FS_proto = FileSaver.prototype
            , saveAs = function(blob, name, no_auto_bom) {
                return new FileSaver(blob, name || blob.name || "download", no_auto_bom);
            }
        ;
        // IE 10+ (native saveAs)
        if (typeof navigator !== "undefined" && navigator.msSaveOrOpenBlob) {
            return function(blob, name, no_auto_bom) {
                name = name || blob.name || "download";
     
                if (!no_auto_bom) {
                    blob = auto_bom(blob);
                }
                return navigator.msSaveOrOpenBlob(blob, name);
            };
        }
     
        FS_proto.abort = function(){};
        FS_proto.readyState = FS_proto.INIT = 0;
        FS_proto.WRITING = 1;
        FS_proto.DONE = 2;
     
        FS_proto.error =
        FS_proto.onwritestart =
        FS_proto.onprogress =
        FS_proto.onwrite =
        FS_proto.onabort =
        FS_proto.onerror =
        FS_proto.onwriteend =
            null;
     
        return saveAs;
    }(
           typeof self !== "undefined" && self
        || typeof window !== "undefined" && window
        || this.content
    ));
    // `self` is undefined in Firefox for Android content script context
    // while `this` is nsIContentFrameMessageManager
    // with an attribute `content` that corresponds to the window
     
    if (typeof module !== "undefined" && module.exports) {
      module.exports.saveAs = saveAs;
    } else if ((typeof define !== "undefined" && define !== null) && (define.amd !== null)) {
      define("FileSaver.js", function() {
        return saveAs;
      });
    }

     

    转载于:https://my.oschina.net/u/3018050/blog/1796339

    展开全文
  • 1. 写入 FileSystemObject可以将文件翻译成文件流。 第一步: 例: 复制代码代码如下:Var fso=new ActiveXObject(Scripting.FileSystemObject); 创建一个可以将文件翻译成文件流的对象。 第二步:用于创建一个...
    1. 写入 
    

    FileSystemObject可以将文件翻译成文件流。 

    第一步: 

    例: 
    复制代码代码如下:

    Var fso=new ActiveXObject(Scripting.FileSystemObject); 

    创建一个可以将文件翻译成文件流的对象。 

    第二步:用于创建一个textStream 对象 

    括号里边有三个属性 

    1. 文件的绝对路径 

    2. 文件的常数 只读=1,只写=2 ,追加=8 等权限。(ForReading 、 ForWriting 或 ForAppending 。); 

    3. 一个布尔值 允许新建则为true 相反为false; 

    例: 
    复制代码代码如下:

    Var f=fso.createtextfile(“C:\a.txt”,2,true); 

    第三步:调用textStream的方法 

    1. Write(不在写入数据末尾添加新换行符) 

    2. WriteLine(要在最后添加一个新换行符) 

    3. WriteBlankLines(增加一个或者多个空行) 

    例: 
    复制代码代码如下:

    f.writeLine(“wo shi di yi hang”); 

    第四步: 

    关闭textStream 对象: 

    例:f.close(); 

    2. 读取 

    第一步: 
    复制代码代码如下:

    Var fso=new ActiveXObject(Scripting.FileSystemObject); 

    创建一个可以将文件翻译成文件流的对象。 

    第二步:用于创建一个textStream 对象 

    括号里边有三个属性 

    4. 文件的绝对路径 

    5. 文件的常数 只读=1,只写=2 ,追加=8 等权限。(ForReading 、 ForWriting 或 ForAppending 。); 

    6. 一个布尔值 允许新建则为true 相反为false; 

    例: 
    复制代码代码如下:

    Var f=fso.opentextfile(“C:\a.txt”,1,true); 

    第三步:调用读取方法 

    1. Read(用于读取文件中指定数量的字符) 

    2. ReadLine(读取一整行,但不包括换行符) 

    3. ReadAll(则读取文本文件的整个内容); 

    判断是否读取到最后一行 
    复制代码代码如下:

    while (!f.AtEndOfStream) 

    f.Readline(); 


    第四步: 

    关闭textStream 对象: 

    例:f.close(); 

    下面是一个html打开txt文件的例子。 
    复制代码代码如下:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>你好</title> 
    </head> 

    <body> 
    <div id="aa"></div> 

    <script language="javascript"> 
    var fso, ts, s ; 
    var ForReading = 1; 

    fso = new ActiveXObject("Scripting.FileSystemObject"); 
    ts = fso.OpenTextFile("d:\\testfile.txt", ForReading); 
    s = ts.ReadLine(); 
    document.getElementById("aa").innerHTML=s; 
    </script> 

    </body> 
    </html> 
    展开全文
  • node.js 操作文件的是 fs这个类1.读取文件 用的是 fs.readFile() 和 fs.readFileSync(); 创建一个 read_file文件const fs = require('fs'); module.exports = { readSync : (path)=&gt;{ //同步读文件 ...
  • 文件保存到手机

    2018-12-19 16:17:31
    1.设置文件保存路径 String savePath=Environment.getExternalStorageDirectory.getAbsolutePath()+ “/文件夹名/”+“文件名/”; 或者用File.separator可以跨平台代替路径分隔符"/" 2. File file=new ...
  • 更新记录1.0.0(2021-01-18)init commit平台兼容性app微信小程序支付宝小程序百度小程序字节小程序QQ小程序快应用3.0.7 app-vue××××××h5-...Safari×××××××××uni-app 日志文件写入与创建(实测可用)...
  • JS中想要顺序执行命令,也是同样的原则,不过在java中我们可以通过BufferReader来读取输出流,通过DataOutputStream来写入,但是在JS中尝试各种办法都没法引用JAVA中的这两个对象,因此只能用下面这种方法: ...
  • JS能在安卓手机SD卡中创建文件吗? 如题 如果能 怎么创建?
  • 浏览器解析页面元素时, 解析到js的绑定标签事件的js代码的时候,我们用js生成的标签元素还没有生成,所以这些JS 代码的绑定的事件,根本就没有绑定这些动态加载的标签上,所以事件不会触发。 解决: 用delegate...
  • 我是用来对比,解压出来的js文件通常要放置在安卓目录里面,每次app启动时都要调用这个文件来进行渲染,所以在每次打开app的时候就拿存放在assets文件夹下的zip源文件来和js文件进行对比,判断js文件是否被修改了...
  • 关于uni-app手机nfc开启、读取、写入功能

    千次阅读 热门讨论 2020-12-01 09:44:57
    关于手机开启nfc功能 nfc功能开启,分为开启手机的nfc...关于手机读取nfc签的内容,手机更改nfc签的内容,手机写入nfc签内容,需要相关js文件来配合app开启nfc、读取、写入等功能,当然需要及时关闭app nfc功能。 ...
  • windows下开发cocos2dx程序时,直接使用相对地址对程序进行读取与写入,并未出现问题,但在编译成安卓平台下的程序时出现无法写入问题。 以下是资料: CCFileUtils::sharedFileUtils()->getWriteablePath() 实际...
  • 1、文件下载页面用来显示要下载的文件数量和大小,以及总文件大小。数据展示这里就不贴了,就贴后面需要用到的三个弹出层吧:遮罩层、文件下载提示框、下载完成弹出框。 &lt;!-- 遮罩层 --&gt; &lt;...
  • Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,是一个应用程序。 官方网址,中文站 二:作用 解析运行 JS 代码并且操作系统资源,如内存、硬盘、网络 比如说js代码在浏览器运行时无法对计算机的...
  • 在前端想要生成txt或者其他格式文件来保存一些数据,或者在数据请求服务器成功后想要将数据生成文件并下载,这些需求还是比较多的,这里使用的download.js。既可以满足这些需求。 第一步:下载 1.下载可以在...
  • 关于ios系统的bug这块也是快把柚子给逼疯了啊,ios系统是没有文件管理的,柚子用了很多办法,最后终于确定不管用什么办法ios都是实现不了下载的,只能实现在线查看。所以没办法,如果不考虑兼容ios的话,是很简单就...
  • 这里有个问题就是,手机在excel解析的时候会变成科学记数法的数值,如果保存的格式是String类型,就会出现解析报错,所以需要把手机的单元格设置成文本格式,设置单元格格式是不行的,具体的方式例如wps是进入数据--...
  • 我在手机里面写了Java socket服务,然后把前端的图片和css和js文件了安卓项目的 assets目录,然后浏览器访问服务,我会把 assets目录下的文件读出来,然后用DataOutputStream流写入浏览器,但是发现页面显示不...
  • 包括JS、XML、JSON,包括树(二叉树、平衡树的学习)、包括查找、排序、STL(map、set、list、vector)、编码(Unicode、ANSI、UTF-8、UTF-16)、DOM、还有其他乱七八糟的。 这周一整周都没停歇过,LOL也整整一周没...
  • JS文件的几种方法(浏览器内)方法1、点击链接(不支持手机)方法2 调用requestFileSystem()方法(不支持手机)方法3、ActiveXObject(仅支持IE浏览器) 手机浏览器内核版本:chrome/79.0.3945.116 mobile)。 js...
  • 写入缓冲区

    2020-03-02 19:55:07
    在进行文件复制的过程中,首先要将源文件的数据读取出来,然后写入Buffer缓冲区中。写入Node.js缓冲区的语法如下: buf.write(string[, offset[, length]] [,encoding]) ; 上述语法执行后将返回实际写入的大小。...
  • JavaScript 文件上传详解

    千次阅读 2017-03-01 14:06:57
    因为如果不关闭,网络中残留的数据可能继续写入文件,导致数据错乱。服务端一般请求间是无法操作的,一个请求不能操作其它请求。 虽然,实际上几乎不会出现上面的情况,但是它不严谨。并且, http 协议是一个应用...
  • unipp 中的向 剪切板写入 内容的 api 不支持 h5...建立一个新的 js 文件写入一下内容: import Clipboard from 'clipboard'; export function handleClipboard(text, event, onSuccess, onError) { event = eve
  • // 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init({ env:'XXXXX'//此处为你的环境名 }) // 云函数入口函数 exports.main = async (event, context) => { const res=await cloud....
  • 使用LinqToExcel.dll ...1、上传Excel文件到服务器上 HttpPostedFileBase mypostfile = Request.Files[0]; string myfile = MyPathEx.myfileName(@"事业单位准考证上传"); myfile = myfile +
  • 将爬取的网页数据写入Excel文件中 Python:将爬取的网页数据写入Excel文件中 通过网络爬虫爬取信息后,我们一般是将内容存入txt文件或者数据库中,也可以写入Excel文件中,这里介绍关于使用Excel文件保存爬取的网页...
  • 高清智能手机人人都有,各种场景下的视频应用越来越多,而且视频分辨率和视频尺寸越来越大(1080P高清已经普及,4K视频也即将普及),而且我们又需要和他人之间进行视频分享,这样就常常遇到大文件上传和断点续传的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,978
精华内容 6,791
关键字:

js写入文件到手机