dポイントプレゼントキャンペーン実施中!

PHPについて質問です。

MSG,ZIPファイルダウンロードサイト作成しております。
ダウンロードして指定のフォルダに格納するところまではできました。

プログラムには、
$file_name= mb_convert_encoding($file_name,"sjis-win","UTF-8");
これを記載しています。

ダウンロードしたファイルをクリックすると、
「テキストファイル処理の確認」という、
文字コードを選択できるダイヤログが出てきます。
それを押しても開くことはできません。

どうしたらいいのでしょうか?
説明不足かと思いますので、ヒントだけでも教えていただけるとありがたいです。

A 回答 (3件)

>「圧縮(zip形式)が無効であるか、または壊れています」


>とメッセージがでます。

ほぉ・・・
>basename($filename)
ということはZIPファイルはPHPで圧縮したのではもともとZIPとして
おいてあるということで間違いないですね?

もちろん
$content_length = filesize($filename);
はしていますよね?

ちなみにもともとアップされているファイルと、ダウンロード
してきたファイルのサイズに差異はないでしょうか?

この回答への補足

ということはZIPファイルはPHPで圧縮したのではもともとZIPとして
おいてあるということで間違いないですね?
★そうです。ですが、リネームしてます。

もちろん
$content_length = filesize($filename);
はしていますよね?
★追加してみましたが、ダメでした。

ちなみにもともとアップされているファイルと、ダウンロード
してきたファイルのサイズに差異はないでしょうか?
★差異がありました。

お手数おかけしますが、よろしくお願いします。

補足日時:2011/09/08 14:07
    • good
    • 0

うーん・・・


単純に拡張子が.ZIPになっていないとかじゃないでしょうか?

PHPのカテゴリーでの質問とのことですから
プログラムでZIPを吐き出しているのですかね?
であればきちんとhttpヘッダーはつけていますか?

たとえばこんな感じ・・・

header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"download.zip\"");

この回答への補足

またまた迅速なご返答ありがとうございます。

zipで吐き出しています。
ヘッダーは下記のように設定済みです。

header("Content-Disposition: attachment; filename=\"".basename($filename)."\"");
header("Content-Length: ".$content_length);
header("Content-Type: application/octet-stream");
header('Content-Transfer-Encoding: binary');

ご質問の件、試してみましたがZIPで吐き出されていることは確かでした。。
そこでまた質問なのですが、
ZIPファイルを「プログラムから開く→フォルダを指定する」
と、
「圧縮(zip形式)が無効であるか、または壊れています」
とメッセージがでます。

これはプログラムの問題でしょうか?
私のPCの問題なのでしょうか?

初歩的な質問で申し訳ありません。
よろしくお願いします。

補足日時:2011/09/08 12:36
    • good
    • 0

必要な情報がまったく伝わってこないのですが・・・


もうすこし仕様をきちんと説明してください

(1)自サイトにZIPがおいてある?
(2)そのZIPの中身はテキストファイル?
(3)それをクライアントPCにダウンロードさせる?

>ダウンロードしたファイルをクリックすると、
>「テキストファイル処理の確認」という、

ZIPファイルをクリックしてこのエラーがでるということですか?
ZIPの解凍をした上で、中身を開いたらどうなりますか?
それとも解凍ができないということ?

この回答への補足

迅速な対応ありがとうございます!

(1)自サイトにZIPがおいてある?
★はい

(2)そのZIPの中身はテキストファイル?
★テキストファイルもあります。他にもいろいろ。

(3)それをクライアントPCにダウンロードさせる?
★そうです。クリックしたら自動的にダウンロードしたいです。

ZIPファイルをクリックしてこのエラーがでるということですか?
★そうです。

ZIPの解凍をした上で、中身を開いたらどうなりますか?
それとも解凍ができないということ?
★デスクトップにダウンロードして開くと、解答しようとすると、テキストファイル処理の確認がでてきて、・・・・・・・zip.bakの形式になり、デスクトップにもうひとつファイルができます。

ご丁寧にありがとうございます。
よろしくお願いします。

補足日時:2011/09/08 11:59
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!