[英]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:
http://en.wikipedia.org/wiki/Server-side_JavaScript
或者,您可以强制用户安装ActiveX对象:
你不能直接使用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.