• ベストアンサー

HTTP接続

HTTPでサーバー上のファイルをダウンロードする アプリを作成中です。 HTTP接続でサーバー上のターゲットファイル名や、ファイルサイズ等を 取得したいのですが、ネット上しらべたりしたのですが、 FTP接続では同等の機能を実装したサンプルなどがあるのですが、 HTTP接続においては見当たりません。私の調べ方が悪いのかもしれませんが、 そもそも、HTTP接続において希望の処理ができるのかどうか ご教授していただけないでしょうか? ネットワークに疎いですが、早急に実装しないといけなくて 困っております。 よろしくお願いします。 VC++6.0 MFC です。

質問者が選んだベストアンサー

  • ベストアンサー
  • Fooky
  • ベストアンサー率71% (59/82)
回答No.3

サーバ上のファイル名やファイルサイズを 取得する、というのは、大抵、できません。 できるかできないかは、サーバのセキュリティ ポリシーに依ります。 私はAPACHE系のWWWサーバしかいじったことは 無いですが,URLにファイル名が指定されていない 場合(http://channel.goo.ne.jp/news/ などの ような指定の仕方。ディレクトリ名までしか指定 していない)に、ディレクトリ内のファイルと、 配下のディレクトリ名の一覧を表示(ftpのls コマンドのように)するかどうかは、サーバの 設定に依ります。 多くの場合、そのディレクトリの中にindex.htmlと 言う名前のファイルがあればそれを表示し、なければ エラーを返す、という設定になっていると思います。

yomogikun
質問者

お礼

サーバー設定に依存するんですね。 丁寧な回答ありがとうございました。

その他の回答 (3)

  • alfeim
  • ベストアンサー率58% (114/195)
回答No.4

deagleさんの言う通りサーバが返してくるのであればHEADERフィールドにのってくるはずです。 詳しくはRFC2068 HTTP/1.1を参照してください。 ネットワークでなんかする場合はRFCに該当のものがあるのが普通なので、覚えとおくと良いかと。FTPでもSMTPでもPOPでも"標準"はすべて載ってます(あくまで"標準"なので各社独自の拡張は載ってませんが)。

参考URL:
http://www.geocities.co.jp/SiliconValley-PaloAlto/5694/rfc/rfc2068-ja.html
noname#25358
noname#25358
回答No.2

 えとですね。  HTTP接続の場合はブラウザでやってることをまんまプログラムでやるだけなので、send でアドレスを送ると、recv にそのまま返ってきます。  HTTP はもともと、HTML を送受信する専用のプロトコルなので、ターゲットファイル名はどこからか持ってくるしかないはずですし、ファイルサイズはサーバーが返してくれないかぎり分からないはずです。  返してくれるとすれば、Content-length: ヘッダに返ってきます。

  • xruz
  • ベストアンサー率50% (72/143)
回答No.1

Java ServletではHTTPでファイルのアップロード、ダウンロードが可能です(とっても、めんどうなのですが)。 VC++はわからなくてごめんなさい(はずしてるなぁ)。

関連するQ&A