Add API endpoint to make IAR files downloadable
parent
6a4c343b03
commit
891f1dff70
|
@ -22,7 +22,8 @@ class Mcp implements ConnectionProvider
|
||||||
'getAccessList' => 'Api\\GetAccessList',
|
'getAccessList' => 'Api\\GetAccessList',
|
||||||
'onlineDisplay' => 'Api\\OnlineDisplay',
|
'onlineDisplay' => 'Api\\OnlineDisplay',
|
||||||
'viewerWelcomeSite' => 'Api\\ViewerWelcomePage',
|
'viewerWelcomeSite' => 'Api\\ViewerWelcomePage',
|
||||||
'runCron' => 'Api\\CronStarter'
|
'runCron' => 'Api\\CronStarter',
|
||||||
|
'downloadIar' => 'Api\\DownloadIar'
|
||||||
],
|
],
|
||||||
'page' => [
|
'page' => [
|
||||||
'dashboard' => 'Page\\Dashboard',
|
'dashboard' => 'Page\\Dashboard',
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?php
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Mcp\Api;
|
||||||
|
|
||||||
|
class DownloadIar extends \Mcp\RequestHandler
|
||||||
|
{
|
||||||
|
|
||||||
|
public function get(): void
|
||||||
|
{
|
||||||
|
if (preg_match('/^[a-f0-9]{32}$/', $_GET['id'])) {
|
||||||
|
$path = $this->app->getDataDir().DIRECTORY_SEPARATOR.'iars'.DIRECTORY_SEPARATOR.$_GET['id'].'.iar';
|
||||||
|
if (file_exists($path)) {
|
||||||
|
header('Content-Type: '.mime_content_type($path));
|
||||||
|
header('Content-Disposition: attachment; filename='.$_GET['id'].'.iar');
|
||||||
|
header('Content-Length: '.filesize($path));
|
||||||
|
readfile($path);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
http_response_code(404);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue