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; } } 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']); } } } } } 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']); } } } } } $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'])) { ?>

Просмотр файла

Предпросмотр данного формата недоступен.