こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

圧縮ファイルのダウンロード

現在ログをダウンロードするプログラムを作成しています。
ログを1つのファイルとしてあつかうため、
それぞれのログを
ftp_fget関数で1つのファイルにまとめました。
ここまではうまくいってるのですが、容量が大きいため
圧縮せざるをえないと重い。
system('/usr/local/bin/zip '.$fileName.'.zip '.$fileName);

上記のシステムコマンドでファイルを圧縮しました。
15MBのファイルが2MBまで落ちましたが、

これをダウンロードしようとするとうまくいきません。
ダウンロードのやり方は下記のようなやり方です。

header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=" . $all_data['fileName']);
header("Content-Length: " . $fSize['B']);
readfile($all_data['fileName']);

このような方法でダウンロードしようとすると、何故か688バイト分くらいしかとってきてくれません。
何か原因があるのでしょうか?
どなたかご教授お願いいたします。

投稿日時 - 2004-11-08 11:05:38

QNo.1074945

すぐに回答ほしいです

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

ということは、バイナリデータを途中まで(688バイト分)書き込んで止まってしまうということでしょうか?
でしたら、
header("Content-Length: " . $fSize['B']);
をコメントアウトしてみてください。
それか、
header("Content-Type: application/octet-stream");

header("Content-Type: application/zip");
にしてみてください。

投稿日時 - 2004-11-08 17:45:25

補足

ありがとうございます。
早速やってみます。

投稿日時 - 2004-11-08 21:44:55

お礼

ありがとうございます。
無事にできました。

投稿日時 - 2004-11-08 21:58:59

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

そのダウンロードしたファイルをメモ帳などで開いてみてください。もしかして404とか書いてありませんか?
それだったら、
readfile($all_data['fileName']);
のファイル場所指定が間違っています。
それ以外では、現状ではなんとも分かりません。

投稿日時 - 2004-11-08 14:39:34

補足

早速の回答ありがとうございます。
一応、途中までは書き込んでいるようなので、メモ帳でも開くことはできます。

投稿日時 - 2004-11-08 16:18:24

あなたにオススメの質問