<?php
AjaxHelper::add_action('resume_download', function () {
AjaxHelper::verify_nonce();
$resumes = isset($_POST['resumes']) ? (array)$_POST['resumes'] : [];
$files = [];
if (count($resumes) > 0) {
foreach ($resumes as $resume) {
$resume_file_id = get_post_meta( $resume, 'resume_file', true );
if (!empty($resume_file_id)) {
$files[] = get_attached_file($resume_file_id);
}
}
}
header('Pragma: public');
header('Accept-Ranges: bytes');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Content-Disposition: attachment; filename="archive.zip"');
header('Content-Type: application/octet-stream');
$fp = popen('zip -j -q -r - ' . implode(' ', array_map('escapeshellarg', $files)), 'r');
$bufsize = 8192;
$buff = '';
while (!feof($fp)) {
echo fread($fp, $bufsize);
}
pclose($fp);
// AjaxHelper::show_data(['success' => true, 'file' => $result]);
});
preferences:
31.18 ms | 402 KiB | 5 Q