2017-10-31 18 views
0

フォルダを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); 

} 
} 
?> 
+0

私は今までこれについての解決策を得ていませんでした。解決策を教えてください。 – Nithin

答えて

0

$ zip->オープン( '$ファイル'、ZIPARCHIVE :: CREATE | ZIPARCHIVE :: OVERWRITE)。

$ zip-> open($ file、ZipArchive :: CREATE | ZipArchive :: OVERWRITE);

+0

今も働いていません... – Nithin

+0

申し訳ありません!私はこのコードを試す機会はありませんが、この問題を解決するのは簡単だと思うので、var_dumpを使ってみてください。 – long

+0

こんにちは、私はこの問題の解決策を得られませんでした。あなたの気持ちで私を助けてください。 – Nithin

関連する問題