ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

PHPで、ファイルのダウンロードをさせるには?

2007-10-03 16:06:25 | PHP

 たとえば、PHPで、ボタンをクリック、あるいはアンカータグをクリックされたら、CSVファイルを保存するダイアログが出て、保存できるようにするなどという場合があるかと思う。

 その場合、たとえば、アンカータグで、
<A HREF="http://127.0.0.1/outcsv.php">CSV出力</A>
(実際は< >は、半角)

と書かれた場合、outcsv.phpは、どうやって書くかというお話。




■方針

 バイナリーで送ることにすれば、ふつう、保存するかどうかのダイアログが出て、保存できるので、バイナリーで送ることにします。Content-Dispositionを指定すると、ファイル名が指定できるので、そうしましょう。




■ソース

 ソースはこんなかんじ
<?php
header("Content-Type: application/octed-stream");
header("Content-Disposition: inline; filename=neagari071003.csv");
?>
"No","証券コード","市場","会社名"
"1","3114","大証2部","(株)プロジェ・ホールディングス"
"2","8519","東証1部","ポケットカード(株)"
"3","2122","マザーズ","(株)インタースペース"
"4","3237","マザーズ","(株)イントランス"
"5","6634","JASDAQ","(株)ネットインデックス"

(上記< > ¥は、本当は半角)
これを、outcsv.phpに書きます。今回は、内容を、No以下直接書いていますが、実際には、PHPでデータベースを検索してとか、いろいろして書き出すと思います。
大切なのは、headerの2行です。




■注意など

 なお、<?php(<は本当は半角)を、ファイルの先頭に書かないとエラーになるような気がする(いろいろやってみた結果)。
Content-Dispositionのinlineは、attachmentに変えてもOK。その後のファイル名neagari071003.csvは好きなファイル名にしてOK

こんなかんじです。



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Vistaでpingすると、一般エラーになる

2007-10-03 01:12:46 | Weblog

 Vistaでpingをうつとき、コマンドラインから、

ping 127.0.0.1

 とやると、ちゃんと帰ってくるけど、それ以外、つながっているはずのところをpingしても、

一般エラー。

 となってしまう(>_<!)

 ネットを見ると、ファイヤーウォールのせいだとか、セキュリティソフトのためとかいろいろ書いてあるけど、よくわかんないや。

 pingが通らないのは、やだなあ。。

P.S tracertも、おなじく。。(>_<!)


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする