• 締切済み

javascriptでサーバー内のファイルの読込

いつもお世話になります。 javascriptでローカルフォルダにあるファイルの読み書きにはFileApiがありますが、サーバーにある、例えばテキストファイルを、FileApiと同じように、サーバー内を参照し、選択して読み込むという方法はあるのでしょうか。 あれば教えてください。よろしくお願いいたします。

みんなの回答

  • Gotthold
  • ベストアンサー率47% (396/832)
回答No.5

テキストを読みたいのなら 上の方の「テキストファイルの読み込み」を参考にした方が良かったのでは? まあ、ファイル読み込み処理のところは同じですが。 > onClick="loadHtml('192.168.11.2/path.dat')" />  http:// が抜けてます。 あと、そのURLをブラウザのアドレスバーに直接入力したときに 読み込めることは確認してますよね? > if ( (httpObj.readyState == 4) && (httpObj.status == 200) ){ 成功したときしか処理がないので デバッグとしては以下のようにelseを入れて失敗していないか確認してみるとかでしょうか。 if ( (httpObj.readyState == 4) && (httpObj.status == 200) ){ alert(httpObj.responseText); }else{ alert("readyState="+httpObj.readyState+", status="+httpObj.status); } > var out = "<html>"; > out += "</html>"; > document.getElementById("out").innerHTML = out; これは参考にしたページで元からそうなっていたようですが、 div要素の中にinnerHTMLでHTML要素を入れるのはおかしいですね。 XMLHttpRequest とか Ajax で検索すれば いろいろ情報が出てくるはずですので、 他のサイトも参考にしてみてください。

hiderin2jp
質問者

お礼

くわしく説明していただき、ありがとうございました。もう一度自分でやってみます。成功しましたらまた改めてお礼させていただきます。

  • Gotthold
  • ベストアンサー率47% (396/832)
回答No.4

> http://home.a00.itscom.net/hatada/js-tips/loadserverfile.html > ただ、ここにあるHTMLファイルの内容を見ても、 > サーバーサイドでどのようなプログラムが動いているのか分かりません。 そのページのサンプルの場合、 サーバーサイドでプログラムは動いていません。 ただテキストファイルが置いてあるだけです。 サーバーが静的にファイルの内容を送ってくる場合でも、 サーバーサイドプログラムの動的な処理結果を送ってくる場合でも、 クライアントから見ればデータが送られてきているのは同じで区別できないので 動的でも静的でもクライアント側でやることは基本同じです。

hiderin2jp
質問者

お礼

ご回答ありがとうございます。 失礼とは思いながらも、上記リンクからloadHtml.js.htmlのコードをコピーさせていただきました。このファイルのみでサーバー内のテキストファイルが参照できるということですね。 私は現在自分のパソコンにXAMPPをインストールし、テスト環境を作っております。 サーバー名のところをいろいろ変えてやってみるのですが、うまく動きません。 <html> <head><title>サーバー上のテキストファイルを読み込む</title> </head> <body> <script type="text/javascript"> function loadHtml(fileName){ httpObj = new XMLHttpRequest(); httpObj.open('GET',fileName+"?"+(new Date()).getTime(),true); // ?以降はキャッシュされたファイルではなく、毎回読み込むためのもの httpObj.send(null); httpObj.onreadystatechange = function(){ if ( (httpObj.readyState == 4) && (httpObj.status == 200) ){ paths = httpObj.responseText.split("\r\n"); var out = "<html>"; for (n = 0; n < paths.length; n++) { out += "<a href='192.168.11.2/" + paths[n] + "'>" + paths[n] + "</a><br>\n"; } out += "</html>"; document.getElementById("out").innerHTML = out; } } } </script> <input type="button" value="ファイル読み込み" onClick="loadHtml('192.168.11.2/path.dat')" />  <input type="button" value="クリア" onClick="document.getElementById('out').innerHTML='';" /> <br> <div id="out"></div> </body> </html> 「'192.168.11.2/」の部分(2カ所あります)には、上記のリンク先ではおそらくそのサーバー名が入っていたので、現在の自分のパソコンのIPアドレスを入れたというわけです。 このサーバー名がおかしいのでしょうか。 初歩的な質問かもしれず、たいへん申し訳ないのですが、ご教授いただけると幸いです。 どうかよろしくお願いいたします。

  • sanzero
  • ベストアンサー率56% (58/102)
回答No.3

その例をもってして何をしたいのかがわからんですが、 サーバー内のファイルの一覧となるlist.htmlをアップロードします。 list.htmlには選択したい何かをリストアップします。 http://qiita.com/Cside/items/7225c3378c6b9ecbcafe を参考にhttpRequestメソッドを追加します。 id="someButton"のボタンをクリックしたら下記を実行します。 var button = document.getElementById('someButton'); button.addEventListner('click', function(){ httpRequest( 'list.htmlへのURL' , { type: 'get', success: function(htmldata){ // list.htmlの内容がhtmldataで取れるのでhtml内に書き出す } }); }; こんな感じではないでしょうか。

hiderin2jp
質問者

お礼

お礼が遅れて申し訳ありません。現在試行中です。うまくいきましたら改めてお礼させていただきます。

  • sanzero
  • ベストアンサー率56% (58/102)
回答No.2

具体的に何をされたいのでしょう? (ajaxを使う場合、サーバの設定をきちんとしないと、同じドメインでないととって来れない)

hiderin2jp
質問者

補足

コメントありがとうございます。 FileApiの場合、「ファイルのアップロード」ウィンドウが開き、ローカルフォルダを参照できますよね。そこで目的のテキストファイルを選び「開く」をクリックすればページにテキストの内容を表示するということができます。それと同様なことを、サーバー内のテキストファイルでもやりたいのです。 私のやりたいことをほぼ実現しているHPのURLは次の通りです。 http://home.a00.itscom.net/hatada/js-tips/loadserverfile.html ただ、ここにあるHTMLファイルの内容を見ても、サーバーサイドでどのようなプログラムが動いているのか分かりません。 そのあたりについてご教授いただけると幸いです。 どうかよろしくお願いいたします。

  • sanzero
  • ベストアンサー率56% (58/102)
回答No.1

ajaxで取れます。 http://ghweb.info/post-2976.html

hiderin2jp
質問者

お礼

早速のご回答ありがとうございます。 ただ、私の今のレベルでは、ご紹介のサイトを見ても全く意味が理解できません。 jqueryも使用したことがないので、できればjqueryを使わない、もう少し基本的なサイトをご紹介していただけたら幸いです。 よろしくお願いいたします。

関連するQ&A

  • JavaScriptでのファイルの読み込み

    JavaScriptでXMLで作成した設定ファイルを<input type=file>で読み込み、 HTML上のtextやcheckboxなどに値をセットするということをやりたいのですが、 これをActiceXやサーバからのレスポンスを使わず、JavaScriptのみで行いたいと 考えています。 IE6で動作することが最低条件になります。 XMLの解析は、恐らく探せばなんとかなると思うのですが、 ファイルを<input type=file>でJavaScriptで読み込むことがなかなかできません。 何か方法はあるのでしょうか?

  • Javascriptでサーバー内のファイルを読むには

    最近HPの制作を始めたものです。 Javascriptを使用してサーバー内にあるファイル(テキスト)を読んで、次々表示させるというページを作ろうと思っているのですが、その方法が分かりません。 Javascriptでは出来ないのでしょうか? また、Java Appletなら可能でしょうか? どなたかどうぞ宜しくお願い致します。

  • javascriptでファイルを開く

    サーバに置いてあるjavascriptを記載したhtmlファイルから 同じサーバ,ディレクトリにある.txtファイルをjavascriptで自動で開くことは可能でしょうか? ローカルに保存されているファイルを開くことは難しいと思いますが, 同じサーバ内のディレクトリにあるファイルなら ボタンを押してファイルを選択するなどの手順を伴なわずに 自動で開くことは可能なのでしょうか? もし可能ならばどのように記述すればよいのでしょうか? よろしくお願いいたします.

  • Javascriptでテキストファイルの読み込み

    「Javascriptでテキストファイルを読み込むサンプル」を 以下URLからそのままコピーし http://www.ajaxtower.jp/ini/html/sample1.html ローカルPCや私がレンタルしているサーバにおいて試したのですが 「サーバ側のファイルです」 という文字が表示されませんでした。 上記URLではもちろん文字が表示されたのですが。 htmlファイルがおいてある場所依存でうまく動作したりしなかったりするのでしょうか? サーバサイドプログラムなのでそのような差は無いと思っているのですか・・・ サンプルの解説が書かれているURLです http://www.ajaxtower.jp/ini/html/index1.html

  • IEで「ファイルを選択」ダイアログボックスを開く方法

    こんにちは。 いつもお世話になっています。 現在、ASPで(1)ローカルでファイルを選択させる。(2)選択されたファイルをサーバのあるフォルダに保存する。 ・・・といった単純なシステムを作っています。 (2)はFileSystemObjctを使ってやればいいと思っているのですが、問題は(1)です。"<input type=file>"を使用すると、ボタンとテキストボックスが勝手につけれらてしまいますし(ボタン名は「ファイル選択」というCaptionにしたい。)、テキストボックスに入力された後、自由に触れてしまいます。(選択されたファイルのパス情報はラベルに表示したい。) おまけにファイルはPDFファイルのみなのでフィルターをかけたいのにその属性もなさそうですし・・・。 "<input type=file>"を使う以外にJavaScriptやASPの機能を使って、何か良い方法はないでしょうか?ネットを見てると同じような事をやってるページが山ほどあるのに(/_;)・・・。 どなたかご教授ください。

  • .txtファイルの読み込み

    こんにちは。 いつもいつも「教えてgoo」には助けられているモノです。 今回質問をさせて頂きたいことは、 JavaScriptでテキストファイルを読み込む方法です。 私が今回したいことは、 --- 1.JavaScriptでファイル内データの読み込み ↓ 2.読み込んだテキストをsplitさせ、配列に入れ込みたい。 --- と、言うことをしたいのですが。。。 (2)は何とか出来ているのですが、(1)がよくわからず・・・ どなたかご存じの方いらっしゃいましたらご伝授よろしくお願いしますm(._.)m

  • サーバー上にないxmlの読み込み

    amazonのWebサービスを利用して、HTML上にxmlを加工して製品情報を載せれるようなjavascriptを考えていたのですが、xmlの読み込みのところで立ち往生しております。 いろいろと模索した結果、サーバー上にないファイルはブラウザのセキュリティー制限に引っかかるため読み込めない、と言うような記述を発見したのですが、Firefox2.0では読み込めず、IE6は読み込めてしまうという現状なので困っております。 XMLHttpRequestを取得してサーバーからファイルを受け取るようにしていたのですが、Firefox2では表示されませんでした。(ローカルなファイルは表示できました。) Javascriptでの解決方法はないのでしょうか? また、別にJavascriptでないといけない分けでもなく、正直私もxmlの性質をあまりつかめていないので、もっとよい方法があれば、教えていただきたく思います。

    • ベストアンサー
    • XML
  • テキストファイルの読み込み

    サーバにあるテキストファイルの読み込みは、やったことあるのですが、 ローカルマシーンにあるテキストファイルを読み込むことは可能なのでしょうか。

  • webブラウザからローカルファイルの読み込み

    はじめまして、質問します。 webブラウザからローカルファイルの読み込みを行いたいのですが、 セキュリティーの問題でアクセスを拒否されました。 その回避法として、FileAPIによって htmlのinput要素かドラッグアンドドロップを用いて ローカルファイルを読み込めることが分かりました。 しかし、私がやりたいことは 絶対パスでローカルファイルを読み込むことです。 そのようなことは可能でしょうか? 上記の方法だとinputからフォルダをたどってファイルを選択するので 原理的には可能なような気がするのですが・・・・ 言語はjavascriptです。 よろしくお願いします。

  • javascriptの効かないサーバーはありますか?

    先日、完成したサイトをお客様へ納品しました。 会社のPCでチェックし、また客先のローカルでもチェックし大丈夫でした。 しかし、サーバーへアップするとロールオーバーが効かなくなりました。javasciptは外部から各ファイルにリンクさせています。ロールオーバーが効かない原因がわからず困っています。 これは、お客様のサーバーでjavascriptを効かなくさせるのでしょうか。サーバーにそのような設定ができるのでしょうか? サーバーについての知識がなくすみませんが、どなたかご存知でしたら教えてください。 よろしくお願いいたします(>_<)