如何使用javascript读取文件的内容?

时间:2011-03-29 07:18:42

标签: javascript ajax

我有一个input type="file"按钮。选择文件后,我必须使用javascript读取文件的内容。是否可以使用javascript或ajax读取/获取所选文件的内容?

8 个答案:

答案 0 :(得分:9)

你在某种程度上都是错的。有可能的。使用新的File API,您可以在将文件提交到服务器之前读取文件。但它并不适用于所有浏览器。

检查此示例。例如,尝试打开文本文件。

http://development.zeta-two.com/stable/file-api/file.html

编辑:即使问题说明“已上传的文件”,我将其解释为“要上传的文件”。否则它根本没有意义。

答案 1 :(得分:7)

使用AJAX可以读取上传的文件但是使用纯javascript是不可能的,因为javascript在客户端而不是在服务器端工作。

如果你打算使用jquery而不是Ajax,那么调用可能是这样的

$.ajax({
  url: "test.html",
  context: document.body,
  success: function(){
    $(this).addClass("done");
  }
});

答案 2 :(得分:3)

阅读文件客户端很难:

How to read and write into file using JavaScript

Read a local file

Local file access with javascript

除非您尝试使用本地javascript:

Access Local Files with Local Javascript

或服务器端javascript:

http://en.wikipedia.org/wiki/Server-side_JavaScript

或者,您可以强制用户安装ActiveX对象:

http://4umi.com/web/javascript/fileread.php

答案 3 :(得分:0)

你不能直接使用javascript。您可以将文件发布到服务器,然后使用ajax来检索内容。

答案 4 :(得分:0)

Javascript旨在无法访问正在运行的计算机。这是流氓javascript无法读取用户的硬盘。 你可以考虑使用iframe。

答案 5 :(得分:0)

在java脚本中无法执行此操作。见Local file access with javascript

我同意上面的DoXicK。您可以先在服务器上发布文件,然后使用Ajax读取它。

答案 6 :(得分:0)

这并非完全不可能

浏览器通常在沙盒环境中运行Javascript(JavaScript Engine)。

因此,您可以在受信任的环境中使用Windows Scripting Host或Internet Explorer并使用FileSystemObject

或使用

或者将文件上传到您的服务器并使用 XMLHttpRequest 对象。(换句话说 - Ajax)

答案 7 :(得分:0)

对于IE,使用FileSystemObject(可在所有Windows系统上找到)。

对于Firefox:

var file = Components.classes["@mozilla.org/file/local;1"].
       createInstance(Components.interfaces.nsILocalFile);
file.initWithPath("/home");

请参阅https://developer.mozilla.org/en/Code_snippets/File_I%2F%2FO

要查看这些方法以及其他正在使用的方法,请查看TiddlyWiki应用,了解它如何在所有主流浏览器中实现。