LoginSignup
6
5

More than 5 years have passed since last update.

PHPで自動ダウンロード

Last updated at Posted at 2015-04-17

コメント貰ったので追記してみる。

1.沢山あるファイルから検索条件を指定してファイルを選択するスクリプトにWEBアプリから検索条件を引数として渡して実行させる
2.選択したファイルをZIP圧縮して自動的にダウンロードさせる

この2番めが今回の目的


1.検索してまとめるプログラムはUserAでスクリプトを書いた。
WEBのFormで検索条件を入力させてFormのActionタグで検索スクリプトを実行したいが、その場合はユーザーがApacheだったりするので、PHPのsystemコマンドにユーザーやパスを指定してコマンドを渡してみる

system("su -u UserA -s スクリプト.sh"); > 検索スクリプトを実行
wait,終了を戻り値で確認してから
system("su -u UserA -s zip -r 出来上がりファイル名".".zip"); > ZIPへ圧縮

2.PHPでZIPファイルを作ったら自動ダウンロードさせる。
ZIPファイルの名前とContent_lengthを入れ込んだヘッダを作る。
application/octet-streamをヘッダに書くとIE,Firefox,Chromeではリンクのクリックなどが必要無く自動的にダウンロードされる。

header("Content-Type: application/octet-stream");
header("Content-Length: ".$content_length);
header("Content-Disposition: inline; filename=\"".$filename."\"");

バッファにゴミが溜まることがあるのでヘッダーの最後に
ob_end_clean();
を追記する。

6
5
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5