- ベストアンサー
HTTPでダウンロードさせるには
ファイルを特定の相手にダウンロードさせる方法としてFTPが有りますが、HTTP(インターネットブラウザー)を使って特定のアドレスにアクセスすると自動的にダウンロードを開始させるという方法を教えて下さい。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
#4 です。 あ、#2 さんの回答だと旨く行かないですね。リフレッシュ先のURLがHTMLで書かれているページでは無いので、リフレッシュ終了後に元のページに戻ってきてしまうのですよ。 それが、表示を繰り返してしまう理由です。 やはり、location: ヘッダを無理やり出力してあげないとダメかも知れませんね。
その他の回答 (5)
- Dpop
- ベストアンサー率51% (279/544)
#4 です。 テストは行っていませんが、こんな感じです。 #!/usr/local/bin/perl $durl = "http://~"; # ここにダウンロード対象のURLを指定する。 $gurl = "http://~"; # ダウンロード終了後に移動するページのURLを指定する。 print "location: $durl\n\n"; print "location: $gurl\n\n"; exit(0); 以上です(笑) location: ヘッダを送出するだけであれば、この程度のコードで終了してしまいます。ただし、ダウンロード後に他のページへ移動するのではなく、独自に適当な表示を行うのであれば、もうちょっと工夫が必要になるかも知れません。(と、言っても、非常に簡単なものですが。)
お礼
回答ありがとうございます。CGI試してみます。
- Dpop
- ベストアンサー率51% (279/544)
#2 さんの回答で、ほとんどOKだと思いますが、別の方法と言いますか、もっとHTTP的な方法を紹介します。 HTTPヘッダの中に、location: と言うヘッダがあります。location: ヘッダにダウンロードさせたいファイルのURLを指定したCGIを作成し、そのCGIをHTTPでアクセスすると、ブラウザの表示は一切なく、ダウンロードだけが開始される。と言う状態になります。 ただし、ダウンロード終了後、なんらかの表示を行わないと(若しくは、もう1つ location: ヘッダを書いて、適当なページへ飛ばすのでも良い。)、エラーページが表示されてしまいますが。 HTTP と言うと、HTML での処理をイメージさせる方が多いかとは思いますが、HTTP だけの機能でも、この程度の事ならできてしまいます。
お礼
回答ありがとうございます、ただいまchie65536さんのHTMLで苦労しています。CGIを書いたことがないんですが難しいですか?
- sizumoka
- ベストアンサー率37% (3/8)
ダウンロードさせたいファイルを圧縮します。zipとかで・・・ そのファイルをFTPでサーバにアップします。 ファイルの置き場所(アドレス)をリンクに設定します。 クリックすると自動的にダウンロードしますか?のダイアログがでます。
お礼
回答ありがとうございます。
- chie65536
- ベストアンサー率41% (2512/6032)
ダウンロードさせたいファイルがlhaアーカイブファイルの場合を例にします。 ダウンロード用ページに <HTML> <HEAD><TITLE>○○.LZHのダウンロード</TITLE></HEAD> <BODY> <META HTTP-EQUIV = "Refresh" content="1; url=http://アーカイブファイルのURL"> ○○.LZHをダウンロードします。<BR> 自動的にダウンロードされない場合は<A HREF="http://アーカイブファイルのURL">ここ</A>をクリックして下さい<BR> <A HREF="http://元のページのURL">戻る</A><BR> </HEAD> </HTML> と書いておきます。このHTMLページをブラウザで開くと、1秒後に自動的にダウンロードのダイアログが出ます。 これでうまく行かない(ダウンロードのダイアログが出ず、ブラウザが直接開こうとする)場合は、ダウンロードさせたいファイルがあるフォルダの .htaccess に、 AddType application/x-lha .lzh の1行を足して下さい。
補足
教えていただいたHTMLをダウンロードさせたいデータのあるホルダーに入れて、同時にダウンロードさせたいLZHファイルを同じホルダーに入れたのですがブラウザーでアドレスを指定するとHTMLを一秒おきくらいに表示を繰り返します、どこがおかしいかわかりますか。
- sisya
- ベストアンサー率39% (97/244)
ファイルが置いてあるアドレスを ブラウザの「アドレス」欄に入力すればOKです。
お礼
回答ありがとうございます。
お礼
なんどもありがとうございます。参考になります。