2026-05-22 20:21:54 +02:00
|
|
|
|
<?php
|
|
|
|
|
|
require_once($_SERVER['DOCUMENT_ROOT'] . "/config.php");
|
|
|
|
|
|
if (!isset($_GET['download']) && isset($_GET['preview'])) {
|
|
|
|
|
|
$get = clearInputData($_GET);
|
|
|
|
|
|
require($_SERVER['DOCUMENT_ROOT'] . "/templates/new-header.php");
|
|
|
|
|
|
}
|
|
|
|
|
|
ini_set('display_errors', 1);
|
|
|
|
|
|
error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$pdo = new MysqlPdo(hst, ndb, user, pass);
|
|
|
|
|
|
$sql = "SET NAMES 'utf8'";
|
|
|
|
|
|
$pdo->query($sql);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function file_force_download($file, $name)
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (file_exists($file)) {
|
|
|
|
|
|
// сбрасываем буфер вывода PHP, чтобы избежать переполнения памяти выделенной под скрипт
|
|
|
|
|
|
// если этого не сделать файл будет читаться в память полностью!
|
|
|
|
|
|
if (ob_get_level()) {
|
|
|
|
|
|
ob_end_clean();
|
|
|
|
|
|
}
|
|
|
|
|
|
//echo $name;
|
|
|
|
|
|
// заставляем браузер показать окно сохранения файла
|
|
|
|
|
|
header('Content-Description: File Transfer');
|
|
|
|
|
|
header('Content-Type: application/octet-stream');
|
|
|
|
|
|
header("Content-Disposition: attachment; filename=\"" . $name . "\"");
|
|
|
|
|
|
header('Content-Transfer-Encoding: binary');
|
|
|
|
|
|
header('Expires: 0');
|
|
|
|
|
|
header('Cache-Control: must-revalidate');
|
|
|
|
|
|
header('Pragma: public');
|
|
|
|
|
|
header('Content-Length: ' . filesize($file));
|
|
|
|
|
|
// читаем файл и отправляем его пользователю
|
|
|
|
|
|
readfile($file);
|
|
|
|
|
|
exit;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function file_force_download_url($url, $name) {
|
|
|
|
|
|
$res = doesFileUrlExists($url);
|
|
|
|
|
|
|
|
|
|
|
|
if ($res[0]) {
|
|
|
|
|
|
// сбрасываем буфер вывода PHP, чтобы избежать переполнения памяти выделенной под скрипт
|
|
|
|
|
|
// если этого не сделать файл будет читаться в память полностью!
|
|
|
|
|
|
if (ob_get_level()) {
|
|
|
|
|
|
ob_end_clean();
|
|
|
|
|
|
}
|
|
|
|
|
|
//echo $name;
|
|
|
|
|
|
// заставляем браузер показать окно сохранения файла
|
|
|
|
|
|
header('Content-Description: File Transfer');
|
|
|
|
|
|
header('Content-Type: application/octet-stream');
|
|
|
|
|
|
header("Content-Disposition: attachment; filename=\"" . $name . "\"");
|
|
|
|
|
|
header('Content-Transfer-Encoding: binary');
|
|
|
|
|
|
header('Expires: 0');
|
|
|
|
|
|
header('Cache-Control: must-revalidate');
|
|
|
|
|
|
header('Pragma: public');
|
|
|
|
|
|
header('Content-Length: ' . $res[1]);
|
|
|
|
|
|
// читаем файл и отправляем его пользователю
|
|
|
|
|
|
echo file_get_contents($url);
|
|
|
|
|
|
exit;
|
|
|
|
|
|
}
|
2026-07-06 16:18:19 +02:00
|
|
|
|
|
|
|
|
|
|
// Фолбэк: файла ещё нет в Selectel (окно до офлоада) или Selectel недоступен — отдаём с локального диска.
|
|
|
|
|
|
$local = str_replace('https://uf.joywork.ru', $_SERVER['DOCUMENT_ROOT'], $url);
|
|
|
|
|
|
if ($local !== $url && file_exists($local)) {
|
|
|
|
|
|
file_force_download($local, $name);
|
|
|
|
|
|
}
|
2026-05-22 20:21:54 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function doesFileUrlExists($url) {
|
|
|
|
|
|
$headers = get_headers($url, true);
|
|
|
|
|
|
return [(stripos($headers[0], "200 OK") ? true : false), (isset($headers['Content-Length']) ? (int) $headers['Content-Length'] : 0)];
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function endsWith($haystack, $needle) {
|
|
|
|
|
|
return $needle === "" || (substr($haystack, -strlen($needle)) === $needle);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (isset($_GET['id']) && (int)$_GET['id'] > 0) {
|
|
|
|
|
|
$id = (int)$_GET['id'];
|
|
|
|
|
|
$name = '';
|
|
|
|
|
|
// $file = $_SERVER['DOCUMENT_ROOT'] . "/upload/";
|
|
|
|
|
|
// Убрал документ рут для просмотра файла (формирование урла для google viewer)
|
|
|
|
|
|
$file = "/upload/";
|
|
|
|
|
|
$sql = "SELECT * FROM `clients_files` WHERE id = {$id}";
|
|
|
|
|
|
$q = $pdo->query($sql, true);
|
|
|
|
|
|
$r = $pdo->fetch_assoc($q);
|
|
|
|
|
|
if ($r['client_id'] > 0) {
|
|
|
|
|
|
$file .= "clients/" . $r['client_id'] . "/";
|
|
|
|
|
|
$file = "https://uf.joywork.ru" . $file;
|
|
|
|
|
|
} else if ($r['req_id'] > 0) {
|
|
|
|
|
|
$file .= "/reqs/" . $r['req_id'] . "/";
|
|
|
|
|
|
$file = "https://uf.joywork.ru" . $file;
|
|
|
|
|
|
} else if ($r['object_id'] > 0) {
|
|
|
|
|
|
$file .= "/objects/" . $r['object_id'] . "/";
|
|
|
|
|
|
$file = "https://uf.joywork.ru" . $file;
|
|
|
|
|
|
}
|
|
|
|
|
|
$file .= $r['guid'] . '.' . $r['type'];
|
|
|
|
|
|
$extension = $r['type'];
|
|
|
|
|
|
$name = $r['name'];
|
|
|
|
|
|
|
|
|
|
|
|
// Если есть параметр - отдаем файл для скачивания
|
|
|
|
|
|
if ((isset($_GET['download']) && $_GET['download']) || !isset($_GET['preview'])) {
|
|
|
|
|
|
if ($r['req_id'] > 0 || $r['object_id'] > 0 || $r['client_id'] > 0) {
|
|
|
|
|
|
file_force_download_url($file, $name . '.' . $extension);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
file_force_download($_SERVER["DOCUMENT_ROOT"] . $file, $name . '.' . $extension);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (isset($_GET['userFileId']) && (int)$_GET['userFileId'] > 0) {
|
|
|
|
|
|
$id = (int)$_GET['userFileId'];
|
|
|
|
|
|
$name = '';
|
|
|
|
|
|
$sql = "SELECT * FROM `users_files` WHERE id = {$id}";
|
|
|
|
|
|
$q = $pdo->query($sql, true);
|
|
|
|
|
|
$r = $pdo->fetch_assoc($q);
|
|
|
|
|
|
$file = $r['path'];
|
|
|
|
|
|
|
|
|
|
|
|
$extension = explode('.', $file);
|
|
|
|
|
|
if(count($extension) > 0) {
|
|
|
|
|
|
$extension = $extension[1];
|
|
|
|
|
|
}
|
|
|
|
|
|
$name = $r['filename'];
|
|
|
|
|
|
|
|
|
|
|
|
// Если есть параметр - отдаем файл для скачивания
|
|
|
|
|
|
if ((isset($_GET['download']) && $_GET['download']) || !isset($_GET['preview'])) {
|
|
|
|
|
|
file_force_download($_SERVER["DOCUMENT_ROOT"] . $file, $name . '.' . $extension);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (isset($_GET['guid']) && !empty($_GET['guid'])) {
|
|
|
|
|
|
$guid = $_GET['guid'];
|
|
|
|
|
|
$name = '';
|
|
|
|
|
|
// $file = $_SERVER['DOCUMENT_ROOT'] . "/upload/funnels/";
|
|
|
|
|
|
// Убрал документ рут для просмотра файла (формирование урла для google viewer)
|
|
|
|
|
|
$file = "/upload/funnels/";
|
|
|
|
|
|
$sql = "SELECT * FROM `funnel_files` WHERE guid = '{$guid}'";
|
|
|
|
|
|
$q = $pdo->query($sql, true);
|
|
|
|
|
|
$r = $pdo->fetch_assoc($q);
|
|
|
|
|
|
if ($r['client_id'] > 0) {
|
|
|
|
|
|
$file .= "clients/" . $r['client_id'] . "/";
|
|
|
|
|
|
} else if ($r['req_id'] > 0) {
|
|
|
|
|
|
$file .= "req/" . $r['req_id'] . "/";
|
|
|
|
|
|
}
|
|
|
|
|
|
$file .= $r['guid'] . '.' . $r['type'];
|
|
|
|
|
|
$extension = $r['type'];
|
|
|
|
|
|
$name = $r['name'];
|
|
|
|
|
|
|
|
|
|
|
|
$file = "https://uf.joywork.ru" . $file;
|
|
|
|
|
|
|
|
|
|
|
|
// Если есть параметр - отдаем файл для скачивания
|
|
|
|
|
|
if ((isset($_GET['download']) && $_GET['download']) || !isset($_GET['preview'])) {
|
|
|
|
|
|
if (endsWith($name, $extension)) {
|
|
|
|
|
|
$extension = "";
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if ($extension) {
|
|
|
|
|
|
file_force_download_url($file, $name . '.' . $extension);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
file_force_download_url($file, $name);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (isset($_GET['arhive'])) {
|
|
|
|
|
|
$id_arhive = 0;
|
|
|
|
|
|
$selector = $_GET['selector'];
|
|
|
|
|
|
$type = $_GET['type'];
|
|
|
|
|
|
$id = (int)$_GET['id_type'];
|
|
|
|
|
|
|
|
|
|
|
|
if ((int)$_GET['arhive'] > 0) {
|
|
|
|
|
|
$id_arhive = (int)$_GET['arhive'];
|
|
|
|
|
|
}
|
|
|
|
|
|
$time = time();
|
|
|
|
|
|
$zip_name = $_SERVER['DOCUMENT_ROOT'] . '/upload/zip/' . $time . '.zip';
|
|
|
|
|
|
echo $zip_name;
|
|
|
|
|
|
$zip = new ZipArchive();
|
|
|
|
|
|
if ($zip->open($zip_name, ZipArchive::CREATE) !== TRUE) {
|
|
|
|
|
|
throw new \Exception('Cannot create a zip file');
|
|
|
|
|
|
}
|
|
|
|
|
|
$pole = '';
|
|
|
|
|
|
if ($type == 'client') {
|
|
|
|
|
|
$pole = 'client_id';
|
|
|
|
|
|
} else if ($type == 'req') {
|
|
|
|
|
|
$pole = 'req_id';
|
|
|
|
|
|
} else if ($type == 'object') {
|
|
|
|
|
|
$pole = 'object_id';
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if ($selector == 'id') {
|
|
|
|
|
|
|
|
|
|
|
|
$sql = "SELECT * FROM clients_files WHERE {$pole} = {$id} AND event_id > 0 AND name_id = {$id_arhive}";
|
|
|
|
|
|
|
|
|
|
|
|
$q = $pdo->query($sql, true);
|
|
|
|
|
|
if ($pdo->num_rows($q) > 0) {
|
|
|
|
|
|
while ($r = $pdo->fetch_assoc($q)) {
|
|
|
|
|
|
if (!empty($r['name'])) {
|
|
|
|
|
|
$file = $_SERVER['DOCUMENT_ROOT'] . "/upload/";
|
|
|
|
|
|
if ($r['client_id'] > 0) {
|
|
|
|
|
|
$file .= "clients/" . $r['client_id'] . "/";
|
|
|
|
|
|
} else if ($r['req_id'] > 0) {
|
|
|
|
|
|
$file .= "reqs/" . $r['req_id'] . "/";
|
|
|
|
|
|
} else if ($r['object_id'] > 0) {
|
|
|
|
|
|
$file .= "objects/" . $r['object_id'] . "/";
|
|
|
|
|
|
}
|
|
|
|
|
|
$file .= $r['guid'] . '.' . $r['type'];
|
|
|
|
|
|
|
|
|
|
|
|
if (file_exists($file)) {
|
|
|
|
|
|
$zip->addFile($file, $r['name']);
|
2026-07-06 16:18:19 +02:00
|
|
|
|
} else {
|
|
|
|
|
|
// файл уехал в Selectel — тянем содержимое и кладём в архив из памяти
|
|
|
|
|
|
$url = str_replace($_SERVER['DOCUMENT_ROOT'], 'https://uf.joywork.ru', $file);
|
|
|
|
|
|
$data = @file_get_contents($url);
|
|
|
|
|
|
if ($data !== false) {
|
|
|
|
|
|
$zip->addFromString($r['name'], $data);
|
|
|
|
|
|
}
|
2026-05-22 20:21:54 +02:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
} else if ($selector == 'guid') {
|
|
|
|
|
|
$sql = "SELECT * FROM `funnel_files` WHERE {$pole} = {$id} AND etap_id = {$id_arhive}";
|
|
|
|
|
|
|
|
|
|
|
|
$q = $pdo->query($sql, true);
|
|
|
|
|
|
if ($pdo->num_rows($q) > 0) {
|
|
|
|
|
|
while ($r = $pdo->fetch_assoc($q)) {
|
|
|
|
|
|
if (!empty($r['name'])) {
|
|
|
|
|
|
$file = $_SERVER['DOCUMENT_ROOT'] . "/upload/funnels/";
|
|
|
|
|
|
if ($r['client_id'] > 0) {
|
|
|
|
|
|
$file .= "clients/" . $r['client_id'] . "/";
|
|
|
|
|
|
} else if ($r['req_id'] > 0) {
|
|
|
|
|
|
$file .= "req/" . $r['req_id'] . "/";
|
|
|
|
|
|
}
|
|
|
|
|
|
$file .= $r['guid'] . '.' . $r['type'];
|
|
|
|
|
|
|
|
|
|
|
|
if (file_exists($file)) {
|
|
|
|
|
|
$zip->addFile($file, $r['name']);
|
2026-07-06 16:18:19 +02:00
|
|
|
|
} else {
|
|
|
|
|
|
// файл уехал в Selectel — тянем содержимое и кладём в архив из памяти
|
|
|
|
|
|
$url = str_replace($_SERVER['DOCUMENT_ROOT'], 'https://uf.joywork.ru', $file);
|
|
|
|
|
|
$data = @file_get_contents($url);
|
|
|
|
|
|
if ($data !== false) {
|
|
|
|
|
|
$zip->addFromString($r['name'], $data);
|
|
|
|
|
|
}
|
2026-05-22 20:21:54 +02:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
$zip->close();
|
|
|
|
|
|
file_force_download($zip_name, $time . '.zip');
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if(isset($_GET['afd_id']) && (int)$_GET['afd_id'] > 0){
|
|
|
|
|
|
|
|
|
|
|
|
$id = (int)$_GET['afd_id'];
|
|
|
|
|
|
|
|
|
|
|
|
$sql = "SELECT * FROM `agency_folders_docs` WHERE id = {$id}";
|
|
|
|
|
|
$q = $pdo->query($sql, true);
|
|
|
|
|
|
$r = $pdo->fetch_assoc($q);
|
|
|
|
|
|
|
|
|
|
|
|
// Убираю протокол и хост и урл (видимо ранее это писалось в базу)
|
|
|
|
|
|
$file = str_replace('http://joywork.ru','', $r['url']);
|
|
|
|
|
|
$file = str_replace('https://joywork.ru','', $file);
|
|
|
|
|
|
$extension = explode('.', $file);
|
|
|
|
|
|
|
|
|
|
|
|
if(count($extension) > 0) {
|
|
|
|
|
|
$extension = $extension[1];
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$name = $r['name'];
|
|
|
|
|
|
|
|
|
|
|
|
// Если есть параметр - отдаем файл для скачивания
|
|
|
|
|
|
if ((isset($_GET['download']) && $_GET['download']) || !isset($_GET['preview'])) {
|
|
|
|
|
|
if (endsWith($name, $extension)) {
|
|
|
|
|
|
$extension = "";
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if ($extension) {
|
|
|
|
|
|
file_force_download($_SERVER["DOCUMENT_ROOT"] . urldecode($file), $name . '.' . $extension);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
file_force_download($_SERVER["DOCUMENT_ROOT"] . urldecode($file), $name);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (!isset($_GET['download']) && isset($_GET['preview'])) {
|
|
|
|
|
|
?>
|
|
|
|
|
|
<div class="content-right" style="min-height: 100%;">
|
|
|
|
|
|
|
|
|
|
|
|
<div class="inner">
|
|
|
|
|
|
<div class="main-title">
|
|
|
|
|
|
<h1>Просмотр файла</h1>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="crm new">
|
|
|
|
|
|
|
|
|
|
|
|
<div class="file-viewer-wrapper">
|
|
|
|
|
|
|
|
|
|
|
|
<div class="file-viewer-wrapper__actions">
|
|
|
|
|
|
<a href="<?php echo $_SERVER['REQUEST_URI'] ?>&download=1" download class="jw__g-button file-viewer-wrapper__btn">Скачать</a>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<?php
|
|
|
|
|
|
|
2026-07-06 16:18:19 +02:00
|
|
|
|
// Свежий файл (ещё локально, не уехал в Selectel) — отдаём через публичный file_public.php,
|
|
|
|
|
|
// чтобы внешний вьюер/браузер увидел его сразу (окно async-офлоада). Иначе — прямой URL.
|
|
|
|
|
|
$relForLocal = str_replace('https://uf.joywork.ru', '', $file);
|
|
|
|
|
|
if (!empty($r['guid']) && $relForLocal !== $file && file_exists($_SERVER['DOCUMENT_ROOT'] . $relForLocal)) {
|
|
|
|
|
|
$path = 'https://' . $_SERVER['HTTP_HOST'] . '/file_public.php?g=' . $r['guid'];
|
|
|
|
|
|
} else if (strpos($file, "https") !== false) {
|
2026-05-22 20:21:54 +02:00
|
|
|
|
$path = $file;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$path = 'https://' . $_SERVER["HTTP_HOST"] . $file;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-07-06 16:18:19 +02:00
|
|
|
|
$ifrSrc = 'https://docs.google.com/viewer?url=' . urlencode($path) . '&embedded=true&rm=minimal';
|
2026-05-22 20:21:54 +02:00
|
|
|
|
|
|
|
|
|
|
if (in_array($extension, [
|
2026-07-06 16:18:19 +02:00
|
|
|
|
'doc', 'docx', 'odt', 'pdf', 'xps', 'pages',
|
|
|
|
|
|
'rtf', 'sxw', 'sdw', 'txt',
|
|
|
|
|
|
'xls', 'xlsx',
|
|
|
|
|
|
'sdc',
|
|
|
|
|
|
'ppt', 'pptx',
|
|
|
|
|
|
'dfx', 'eps', 'psd', 'svg', 'tif', 'ttf',
|
|
|
|
|
|
'ai', 'PPTX'
|
2026-05-22 20:21:54 +02:00
|
|
|
|
])) {
|
|
|
|
|
|
?>
|
|
|
|
|
|
<div class="holds-the-iframe">
|
|
|
|
|
|
<iframe id="viewer-dc" onselectstart="return false"
|
|
|
|
|
|
src="<?= $ifrSrc ?>"
|
|
|
|
|
|
frameborder="0" style="width: 100%; height: 90vh; /**
|
|
|
|
|
|
* Для эксплорера
|
|
|
|
|
|
*/
|
|
|
|
|
|
-ms-user-select: none;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* Для мозилы
|
|
|
|
|
|
*/
|
|
|
|
|
|
-moz-user-select: none;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* Для конкверора
|
|
|
|
|
|
*/
|
|
|
|
|
|
-khtml-user-select: none;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* Для Сафари и Хрома
|
|
|
|
|
|
*/
|
|
|
|
|
|
user-select: none;
|
|
|
|
|
|
-webkit-user-select: none;"></iframe>
|
|
|
|
|
|
|
2026-07-06 16:18:19 +02:00
|
|
|
|
<?php // Авто-reload iframe убран: setInterval каждые 2с переустанавливал src вьюера,
|
|
|
|
|
|
// а обработчик load вешался в $(document).ready и мог не поймать уже случившийся load
|
|
|
|
|
|
// → бесконечный reload Google-вьюера → лишние «viewer»-записи в загрузках браузера.
|
|
|
|
|
|
// Файл доступен сразу (file_public.php для свежих / Selectel для офлоднутых) — вьюер грузится сам. ?>
|
2026-05-22 20:21:54 +02:00
|
|
|
|
</div>
|
|
|
|
|
|
<?php } elseif (in_array($extension, [
|
2026-07-06 16:18:19 +02:00
|
|
|
|
'jpg', 'jpeg', 'png', 'JPG', 'JPEG', 'PNG'
|
2026-05-22 20:21:54 +02:00
|
|
|
|
])) { ?>
|
|
|
|
|
|
<img style="overflow-x: auto;" class="hh" src="<?= $path ?>" alt="">
|
|
|
|
|
|
<?php } elseif (in_array($extension, [
|
2026-07-06 16:18:19 +02:00
|
|
|
|
'avi', 'mp4', '3gp', 'wma', 'MP4', '3GP'
|
2026-05-22 20:21:54 +02:00
|
|
|
|
])) { ?>
|
|
|
|
|
|
<video
|
|
|
|
|
|
id="my-video"
|
|
|
|
|
|
class="video-js"
|
|
|
|
|
|
controls
|
|
|
|
|
|
preload="auto"
|
|
|
|
|
|
style="width: 100%; height: 70vh"
|
|
|
|
|
|
data-setup="{}"
|
|
|
|
|
|
>
|
|
|
|
|
|
<source src="<?= $path ?>" type="video/<?= $extension ?>"/>
|
|
|
|
|
|
<p class="vjs-no-js">
|
|
|
|
|
|
To view this video please enable JavaScript, and consider upgrading to a
|
|
|
|
|
|
web browser that
|
|
|
|
|
|
<a href="https://videojs.com/html5-video-support/" target="_blank"
|
|
|
|
|
|
>supports HTML5 video</a
|
|
|
|
|
|
>
|
|
|
|
|
|
</p>
|
|
|
|
|
|
</video>
|
|
|
|
|
|
<link href="https://vjs.zencdn.net/7.10.2/video-js.css" rel="stylesheet"/>
|
|
|
|
|
|
<script src="https://vjs.zencdn.net/7.10.2/video.min.js"></script>
|
|
|
|
|
|
<?php } else { ?>
|
|
|
|
|
|
|
|
|
|
|
|
<p>Предпросмотр данного формата недоступен.</p>
|
|
|
|
|
|
|
|
|
|
|
|
<?php } ?>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<style>
|
|
|
|
|
|
.file-viewer-wrapper {
|
|
|
|
|
|
padding: 15px;
|
|
|
|
|
|
overflow-x: auto;
|
|
|
|
|
|
}
|
|
|
|
|
|
.file-viewer-wrapper__actions {
|
|
|
|
|
|
margin-bottom: 15px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.file-viewer-wrapper__btn {
|
|
|
|
|
|
padding: 5px 15px;
|
|
|
|
|
|
}
|
|
|
|
|
|
</style>
|
|
|
|
|
|
<?php require($_SERVER['DOCUMENT_ROOT'] . "/templates/footer.php"); ?>
|
|
|
|
|
|
<?php } ?>
|