Actual prod

This commit is contained in:
mac 2026-07-06 17:18:19 +03:00
parent d9beb2597a
commit 63794889e6

View File

@ -62,6 +62,12 @@ function file_force_download_url($url, $name) {
echo file_get_contents($url);
exit;
}
// Фолбэк: файла ещё нет в Selectel (окно до офлоада) или Selectel недоступен — отдаём с локального диска.
$local = str_replace('https://uf.joywork.ru', $_SERVER['DOCUMENT_ROOT'], $url);
if ($local !== $url && file_exists($local)) {
file_force_download($local, $name);
}
}
function doesFileUrlExists($url) {
@ -205,6 +211,13 @@ if (isset($_GET['arhive'])) {
if (file_exists($file)) {
$zip->addFile($file, $r['name']);
} 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);
}
}
}
}
@ -226,6 +239,13 @@ if (isset($_GET['arhive'])) {
if (file_exists($file)) {
$zip->addFile($file, $r['name']);
} 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);
}
}
}
}
@ -287,13 +307,18 @@ if (!isset($_GET['download']) && isset($_GET['preview'])) {
<?php
if (strpos($file, "https") !== false) {
// Свежий файл (ещё локально, не уехал в 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) {
$path = $file;
} else {
$path = 'https://' . $_SERVER["HTTP_HOST"] . $file;
}
$ifrSrc = 'https://docs.google.com/viewer?url=' . $path . '&embedded=true&rm=minimal';
$ifrSrc = 'https://docs.google.com/viewer?url=' . urlencode($path) . '&embedded=true&rm=minimal';
if (in_array($extension, [
'doc', 'docx', 'odt', 'pdf', 'xps', 'pages',
@ -329,18 +354,10 @@ if (!isset($_GET['download']) && isset($_GET['preview'])) {
user-select: none;
-webkit-user-select: none;"></iframe>
<script>
function reloadIFrame() {
document.getElementById("viewer-dc").src=document.getElementById("viewer-dc").src;
}
timerId = setInterval(reloadIFrame, 2000);
$( document ).ready(function() {
$('#viewer-dc').on('load', function() {
clearInterval(timerId);
});
});
</script>
<?php // Авто-reload iframe убран: setInterval каждые 2с переустанавливал src вьюера,
// а обработчик load вешался в $(document).ready и мог не поймать уже случившийся load
// → бесконечный reload Google-вьюера → лишние «viewer»-записи в загрузках браузера.
// Файл доступен сразу (file_public.php для свежих / Selectel для офлоднутых) — вьюер грузится сам. ?>
</div>
<?php } elseif (in_array($extension, [
'jpg', 'jpeg', 'png', 'JPG', 'JPEG', 'PNG'