Non puoi selezionare più di 25 argomenti
Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
60 righe
2.4 KiB
60 righe
2.4 KiB
<?php |
|
|
|
$configPath = substr(__DIR__,0,strpos(__DIR__,"/public_html"))."/config.php"; |
|
include_once($configPath); |
|
if (!empty($_SESSION["utente"]) && $_SESSION["utente"]->permission($radice)) { |
|
|
|
if(! empty($_GET["codice"])) { |
|
|
|
$pacchetto = $pdo->go("SELECT * FROM b_conservazione WHERE codice = :codice LIMIT 0,1", [":codice" => $_GET["codice"]])->fetch(PDO::FETCH_ASSOC); |
|
if(! empty($pacchetto)) { |
|
|
|
if($pacchetto["archivio"] == "S" && file_exists("{$config["mediaFolder"]}/{$_SESSION["ente"]->codice}/conservazione/ZIPARCH-{$pacchetto["codice"]}.zip")) { |
|
|
|
$archivio = "{$config["mediaFolder"]}/{$_SESSION["ente"]->codice}/conservazione/ZIPARCH-{$pacchetto["codice"]}.zip"; |
|
header('Content-Description: File Transfer'); |
|
header("Content-Type: application/zip"); |
|
header('Content-Disposition: attachment; filename="'.basename($archivio).'"'); |
|
header('Expires: 0'); |
|
header('Cache-Control: must-revalidate'); |
|
header('Pragma: public'); |
|
header("Content-Transfer-Encoding: Binary"); |
|
header('Content-Length: ' . filesize($archivio)); |
|
|
|
$chunk = 10 * 1024 * 1024; |
|
$handle = fopen($archivio, 'rb'); |
|
while (!feof($handle)) { |
|
|
|
$buffer = fread($handle, $chunk); |
|
echo $buffer; |
|
ob_flush(); |
|
flush(); |
|
} |
|
|
|
fclose($handle); |
|
unlink($archivio); |
|
die(); |
|
|
|
|
|
} else { |
|
|
|
$pdo->go("UPDATE b_conservazione SET archivio = :archivio, utente_modifica = :utente_modifica WHERE codice = :codice", [":codice" => $pacchetto["codice"], ":archivio" => "W", ":utente_modifica" => $_SESSION["utente"]->codice]); |
|
$result = shell_exec("php {$config["cmds_folder"]}/artisan job:dispatch Preservation/MakeZipArchiveJob -P {$_SESSION["ente"]->codice} -P {$pacchetto["codice"]} -Q preservation -C database -D now 2>&1"); |
|
$result = preg_replace('~[[:cntrl:]]~', '', $result); |
|
if($result == "Job has been scheduled.") { |
|
|
|
header("Location: {$_SERVER['HTTP_REFERER']}"); |
|
die(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
HTTPStatus(403); |
|
?><h1>Forbidden</h1><a href="/index.php"><?= __("Ritorna") ?></a><?
|