2012-02-21 4 views
1

私はここにあり、インターネットからファイルをダウンロードし、いくつかのコードを持っている:リファレンスの代わりに、リモートファイルのローカルファイル

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

File APIを使用してください。 Webコンテンツは、その後、それらのファイルの 内容を読んで、ローカルファイルを選択するようにユーザーに依頼するためにHTML5におけるDOMに追加されたファイルのAPIを使用して

が、それは今可能です。この選択は、 HTML入力要素を使用するか、またはドラッグアンドドロップすることによって行うことができます。

+0

ありがとうございます - 今後同じプログラムでFileAPIを使用します – Katana24

1

Amsat.orgはウェブサイトを制御していますか?それがテキストファイル(おそらくJSON)よりもjavascriptにとって意味のあるものとしてテキストファイルを提供する必要があります。

ドメインを制御しないと、ajax経由でファイルをダウンロードすることは不可能になる可能性があります。その場合は、サーバーでファイルをダウンロードして(たとえば、PHPでfopenまたはサーバーサイド言語でそれぞれの関数を使用して)、クライアントに提供することができます。それを行う前に、ウェブサイトの所有者と行う権利を確認する必要があります。

+0

私はAmsatを制御しません。上記の答えは将来的には役立つだろうが、私は問題を解決した。基本的に必要なファイルをテキストファイルとして取り込み、拡張子を.allに変更した。これは残りのプログラムが動作するために必要でした。私はその後、メインのhtmlファイルと同じフォルダに配置し、それは働いた:P – Katana24

関連する問題