Files
QRForge-selfhosted/qrcode/bulk_action.php
T
2022-09-24 15:14:20 -05:00

50 lines
1.4 KiB
PHP

<?php
/**
* PHP Dynamic Qr code
*
* @author Giandonato Inverso <info@giandonatoinverso.it>
* @copyright Copyright (c) 2020-2021
* @license https://opensource.org/licenses/MIT MIT License
* @link https://github.com/giandonatoinverso/PHP-Dynamic-Qr-code
* @version 1.0
*/
session_start();
require_once 'config/config.php';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$db = getDbInstance();
$json = json_decode(file_get_contents('php://input'), true);
$action = filter_var($json['action'], FILTER_SANITIZE_STRING);
$params = $json['params'];
$files = [];
$type = filter_var($json['type'], FILTER_SANITIZE_STRING);
foreach ($params as $param) {
$row = $db->where('id', $param);
$row = $db->getOne("{$type}_qrcodes");
$files[] = './saved_qrcode/' . $row['qrcode'];
}
$zip = new ZipArchive();
$relative_dir = './saved_qrcode/zip/qrcodes_'. $_SESSION['user_id'] .'.zip';
unlink($relative_dir);
$url_path = base_url() . '/saved_qrcode/zip/qrcodes_'. $_SESSION['user_id'] .'.zip';
$zip->open($relative_dir, ZipArchive::CREATE);
foreach ($files as $file) {
$download_file = file_get_contents($file, true);
$zip->addFromString(basename($file), $download_file);
}
$zip->close();
echo json_encode([
'data' => $url_path,
'status' => 200
]);
exit();
} else {
exit('Direct access to this script not allowed.');
}
?>