フォルダをzip形式でダウンロードしようとしていますが、フォルダ名はデータベーステーブルに保存されています。私のコードは動作していません、同じコードが出力として表示されます。 私のテーブル名はpancardです。また、datasseテーブルからxlsにデータを変換するコードも必要です。解決策を教えてください。事前のおかげで...zipして、データベースからフォルダとフォルダ名をダウンロードします。
**HTML**
<form action="zip.php" method="POST">
<button type="submit" class="btn" name="zip">Download</button>
</form>
**PHP**
<?php// Get real path for our folder
include_once 'includes/db_connect.php';
if (isset($_POST['zip'])){
$sql = "SELECT folder FROM `pancard`";
$result = mysqli_query ($dbcon, $sql);
while ($row = mysqli_fetch_array ($result)){
$rootPath = realpath('../pancard/'.$row['folder'].'/');
$file = 'file.zip';
$zip = new ZipArchive();
$zip->open('$file', ZipArchive::CREATE | ZipArchive::OVERWRITE);
$files = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($rootPath),
RecursiveIteratorIterator::LEAVES_ONLY
);
foreach ($files as $name => $file)
{
if (!$file->isDir())
{
$filePath = $file->getRealPath();
$relativePath = substr($filePath, strlen($rootPath) + 1);
$zip->addFile($filePath, $relativePath);
}
}
$zip->close();
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
}
}
?>
私は今までこれについての解決策を得ていませんでした。解決策を教えてください。 – Nithin