繁体   English   中英

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

[英]How to read contents of a file using javascript?

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

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

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

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

编辑:即使问题陈述“上传文件”我将其解释为“要上传的文件”。 否则它完全没有意义。

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

如果你要使用jquery而不是Ajax调用可能是这样的

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

阅读文件客户端很难:

如何使用JavaScript读写文件

读取本地文件

使用javascript进行本地文件访问

除非您尝试使用本地javascript执行此操作:

使用本地Javascript访问本地文件

或服务器端javascript:

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

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

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

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

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

在java脚本中无法执行此操作。 请参阅使用javascript进行本地文件访问

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

这并非完全不可能

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

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

或使用

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

对于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应用程序,了解它如何在所有主流浏览器中实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM