仲間のコーダー:
この質問をするのは嫌いですが、2 回正しく答えられたと思います。
問題は、ダウンロードした「file.zip」を解凍すると、解凍後にパスのすべてのフォルダーが含まれていることです。zip ファイルにサブフォルダーを含めず、ファイルのみを含めたいと思います。
$zipname = str_replace(' ', '_', $obj['Name']) . '.zip';
$zip = new ZipArchive();
$zip->open($zipname, ZipArchive::CREATE);
foreach ($files as $file) {
// $file looks like this: webroot/uploadify/files/file.jpg
$zip->addFile($file, pathinfo($file, PATHINFO_BASENAME));
}
$zip->close();
header('Content-Description: File Transfer');
header('Content-Transfer-Encoding: binary');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header("Content-type: application/zip");
header("Content-Disposition: attachment; filename=" . $zipname);
header("Pragma: no-cache");
header("Expires: 0");
header('Content-Length: ' . filesize($zipname));
readfile($zipname);
このコードの何が問題なのか誰にもわかりますか?
追加情報:
私は、多くの場合、webroot からの相対パスを使用しますが、解凍後のフォルダーのフォルダー階層は次のとおりです。まさに私が達成したかったものではないファイル:)
PHP 5.4.4
Windows XP、XAMPP
編集
http://www.phpconcept.net/pclzip/ライブラリを使用してみましたが、同じ問題がありました。また、私の自宅の PC ( win7 ) でも、このコードはうまく機能しました。
ここで疑問が生じます:私が認識していない、満たさなければならない設定はありますか?