引用本地文件而不是远程文件

时间:2012-02-21 15:04:23

标签: javascript

我有一些代码可以从互联网上下载文件:

http://www.amsat.org/amsat/ftp/keps/current/nasa.all

并对其执行某些计算以确定卫星位置。由于服务器问题似乎阻止了此文件的下载,我想将此文件移动到本地计算机上并从那里引用它。

我知道javascript无法读取没有涉及ActiveX组件的.txt文件但如果我更改变量URL以引用该文件它是否会以相同的方式工作?我尝试将文件保存为.txt,.all和.xml文件,程序失败。我究竟做错了什么?

获取原始文件的代码位于下方,其所在的URL位于上方。

function getOrbitalElements()
{
TLE_Line1="";
TLE_Line2="";

pgTXT = "";

xmlhttp = null;

if ( window.XMLHttpRequest )
{
    xmlhttp = new XMLHttpRequest();
} 
else if ( window.ActiveXObject )
{
    xmlhttp = new ActiveXObject( "Microsoft.XMLHTTP" );
}

if( xmlhttp != null )
{ 
    xmlhttp.onreadystatechange = stateChange;
    xmlhttp.open("GET",url,true);
    xmlhttp.send(null);
}
}

最后,我将文件移动到与html文件相同的文件夹中,并删除了文件名中的任何空格,以查看它是否有所作为。似乎没有任何作用 - 任何人都有任何想法?

2 个答案:

答案 0 :(得分:2)

使用File API

  

使用添加到HTML5中的DOM的文件API,现在可以使用   web内容要求用户选择本地文件,然后阅读   这些文件的内容。这种选择可以通过使用   HTML输入元素,或通过拖放。

答案 1 :(得分:1)

Amsat.org是一个由您控制的网站吗?如果它是你应该提供文本文件作为javascript比文本文件(可能是JSON)更有意义的东西。

如果你不控制域名,那么通过ajax下载文件可能是不可能的。在这种情况下,您可以使用您的服务器下载该文件(例如,使用php中的fopen或服务器端语言中的相应功能),然后将其提供给客户端。在执行此操作之前,您应该检查与网站所有者这样做的权利。