2016-04-28 277 views
-3

你可以用JavaScript代码中的文件路径读取一个txt文件吗?不要通过从打开的文件窗口中选择文件。用javascript读取.txt文件

+0

利用XHR的加载它。 – Nonemoticoner

+1

是的,你可以,它叫做ajax,或者更具体的XMLHttpRequest,祝你好运 – adeneo

+0

http://stackoverflow.com/questions/14446447/javascript-read-local-text-file –

回答

1

如果文本文件是本地或专用PC

上正如你可能知道,如果你能读取存储在用户的文件系统,大家一文本文件将能够在短期窃取私人数据,所以不,你不能

如果你的文本文件是在服务器上

AJAX

function ajax(a,b,c){ // Url, Callback, just a placeholder 
c=new XMLHttpRequest; 
c.open('GET',a); 
c.onload=b; 
c.send() 
} 

如何使用:

ajax('http://YOURSERVER/yourtextfile.txt',function(){ 
alert(this.response); 
}); 

more about the above function

如果你的文本文件是不同的服务器

当托盘访问其他服务器使用Ajax you need to be allowed访问该文件上。有些网站允许通过返回

Access-Control-Allow-Origin: * 

在响应heaeders.so上面的ajax函数可以正常工作。


然后还有其他的方法来从你或其他,我更喜欢AJAX服务器获取数据:

websockets & SSE ..但那些需要像PHP或一个的NodeJS特定接口。

另一种选择是,如果该文件是在您的私人PC,你只是想送存储在一个特定的文本文件的一些数据每次更新:

只要安装nodejs或免费的PHP服务器并创建某种类型的cron作业每隔一段时间检查一次特定的文件夹。当文件更新时,只需将其发送到您的在线服务器。在线主机至少需要PHP ASP或某种服务器端脚本。

0

你可以使用XHR(XML Http Request)。以下是读取'.txt'文件的示例。您可以在html文件中找到该文件,并且需要使用NodeJSPython简单服务器或您所熟悉的任何其他服务器来运行简单的服务器。

如果有蟒:

python -m SimpleHTTPServer 8000 

实施例(readtxt。HTML):

<script type="text/javascript"> 
var request = new XMLHttpRequest(); 
request.open('GET', 'filename.txt', false); // `false` => synchronous request 
request.send(null); 

if (request.status === 200) { 
    console.log(request.responseText); 
} 
</script> 

公开赛: http://localhost:8000/readtxt.html

检查从TXT文件中读取内容浏览器控制台。

您可以阅读更详细的信息,

https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Synchronous_and_Asynchronous_Requests#Asynchronous_request