Hi master,
I want to ask.
I have a file field that contains upload multiple pdf files as many as 5 files.
I added a custom field to download the five pdf files into a zip file.
with the following code:
function Row_Rendered()
{
// To view properties of field class, use:
//var_dump($this-><FieldName>);
$this->dowload_all->ViewValue = "<i class='fa fa-file-text'></i>";
$error = ""; //error holder
if (isset($_POST["createpdf"])) {
$post = $_POST;
$file_folder = "files/" . $this->file->CurrentValue; // folder to load files
if (extension_loaded("zip")) {
// Checking ZIP extension is available
if (isset($post["file"]) and count($post["file"]) > 0) {
// Checking files are selected
$zip = new ZipArchive(); // Load zip library
$zip_name = time() . ".zip"; // Zip name
if ($zip->open($zip_name, ZIPARCHIVE::CREATE) !== true) {
// Opening zip file to load files
$error .= "* Sorry ZIP creation failed at this time";
}
foreach ($post["file"] as $file) {
$zip->addFile($file_folder . $file); // Adding files into zip
}
$zip->close();
if (file_exists($zip_name)) {
// push to download the zip
header("Content-type: application/zip");
header(
'Content-Disposition: attachment; filename="' .
$zip_name .
'"'
);
readfile($zip_name);
// remove zip file is exists in temp path
unlink($zip_name);
}
} else {
$error .= "* Please select file to zip ";
}
} else {
$error .= "* You dont have ZIP extension";
}
}
}
my code has no errors and doesn't work, can anyone help me with the solution, or am I putting the code in the wrong place?