• ベストアンサー

CSVを作成出来たはいいものの・・

$file_name = "oz_test.csv"; $fp = fopen( $file_name , "w"); $contents = "\"1列目\",\"2列目\"\n"; fputs($fp, $contents); こんな感じでファイルを作成し、 あとは<A>タグでダウンロード出来るまでに至ったのですが、 CSVファイルが、サーバ上に出来たら出来たまま、ディレクトリに残りますよね? ダウンロードが終われば消し去りたいのですが、 ダウンロード時のみに作成し、終われば消える仕組みにしたい。 (メモリ上に作ったら消える?HDD上に作るから消えない?) (非公開ディレクトリにファイルを作ればダウンロードできないだろうし) 何か手はありますか?

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

  • ベストアンサー
  • galluda
  • ベストアンサー率35% (440/1242)
回答No.1

がると申します。 んっと…恐らくイメージとしては ・CSVを作成 ・AエレメントでCSVファイルの場所を記述 ・Clickしたらダウンロード っていう手順だとおもうのですが。 作りとデータの重要性にもよるのですが、原則「絶対やっちゃいけないレベルで危険」です。 作りとしては ・Aエレメントで指定しているhrefをCGIにし、そこで動的にCSVを作成&出力 すべきです。 ちなみに、データをCSVとしてクライアントに認識して欲しいのであれば、 header("Content-type: application/octet-stream") header("Content-Disposition: attachment; filename=ファイル名") の2つのヘッダを出力してください。 この方法であれば、そもそもHDDにデータが残りません。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

#1さんの補足ですが、簡単に書くとこんなんです。 <?PHP $file_name = "oz_test.csv"; $contents = "\"1列目\",\"2列目\"\n"; header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=$file_name"); print $contents; ?>