zoukankan      html  css  js  c++  java
  • 在浏览器中打开本地文件1

    更新:大部分浏览器的最新版本都支持通过 FileReader 来打开本地文件,具体方法见这里

    为着安全起见,在 JavaScript 中是不允许直接访问本地文件的。但有时候又需要打开和保存本地文件,在目前的情况之下就只能用一些特殊的方法来实现了。最麻烦的是,这些方法大多都不能适 用于各个主要浏览器,很费事但也只能如此。这一篇总结一下各种打开本地文件的方法,下一篇总结保存本地文件的方法。

    首先是 IE 浏览器。IE 有自己独有的 ActiveX,实现文件的是容易的。在下面的例子中,首先选择好要打开的文件路径名,点击"Read"按钮后将把该文件的内容读入 textarea 区域:

    <html>
    <body>
    <input type="file" id="fileid">
    <button onclick="doRead()">Read</button>
    <textarea id="areaid">hello this!</textarea>
    <script type="text/javascript">
        // works in ie 6
        var myfile = document.getElementById("fileid");
        var myarea = document.getElementById("areaid");
        /* myfile.click(); */
        function doRead() {
            var filename = myfile.value;
            var fso = new ActiveXObject("Scripting.FileSystemObject");
            var tempfile = fso.OpenTextFile(filename, 1);
            var data = tempfile.ReadAll();
            myarea.value = data;
            tempfile.Close();
        }
    </script>
    </body>
    </html>

    注意其中IE将弹出警告窗口要求你确认。

    接下来我们来看在 Firefox 中有什么方法可以实现文件的读取。Firefox 自己扩展了文件选择按钮的功能,因此用下面的代码可以实现本地文件的打开:

    <html>
    <body>
    <input type="file" id="fileid">
    <button onclick="doRead()">Read</button>
    <textarea id="areaid">hello this!</textarea>
    <script type="text/javascript">
        // works in firefox 3
        var myfile = document.getElementById("fileid");
        var myarea = document.getElementById("areaid");
        /* myfile.click(); // works in firefox 4 and beyond */
        function doRead() {
            var tempfile = myfile.files[0];
            var data = tempfile.getAsText("utf8");
            myarea.value = data;
        }
    </script>
    </body>
    </html>

    看起来比IE情形要简单一些,不过上面这些函数在 Firefox 中已经标记为废弃的,在以后可能会被去掉。如果只是在本地网页中读取本地文件,在 Firefox 中还可以用[5]中的方法。

    参考资料:

    [1] MSDN - OpenTextFile Method
    [2] File - MDC Docs
    [3] FileReader - MDC Docs
    [4] Using files from web applications - MDC Docs
    [5] File I/O - MDC Docs
    [6] HTML5中File对象初探 | JS Mix

    [YAML] Date: 2011-05-26 18:00:52, Update: 2012-05-27 12:30:00

  • 相关阅读:
    事件溯源的使用实例
    CQRS With Axon
    maven打包带依赖
    MongoDB Query语法和工具
    docker 在外部指定参数变量 spring
    logger 过滤部分类的logger
    Nginx ServerName指令
    Nginx 处理Http请求简单流程
    Listen 指令
    Nginx 配置
  • 原文地址:https://www.cnblogs.com/zoho/p/2432152.html
Copyright © 2011-2022 走看看