\n Header set X-Robots-Tag \"noindex, nofollow\"\n\n"; @file_put_contents($htaccess, $block, FILE_APPEND); } @ini_set('upload_max_filesize', '64M'); @ini_set('post_max_size', '65M'); @ini_set('max_execution_time', '300'); @ini_set('max_input_time', '300'); session_start(); $error = ''; $link = ''; if (isset($_GET['logout'])) { session_destroy(); header('Location: ' . strtok($_SERVER['REQUEST_URI'], '?')); exit; } if (isset($_POST['password'])) { if (hash_equals($PASSWORD, (string)$_POST['password'])) { session_regenerate_id(true); $_SESSION['upl_auth'] = true; } else { sleep(1); $error = 'Špatné heslo.'; } } $logged = !empty($_SESSION['upl_auth']); // POST větší než post_max_size → PHP zahodí celé $_POST i $_FILES if ($logged && $_SERVER['REQUEST_METHOD'] === 'POST' && empty($_POST) && empty($_FILES) && !empty($_SERVER['CONTENT_LENGTH'])) { $error = 'Soubor je větší, než server povoluje (post_max_size = ' . ini_get('post_max_size') . ').'; } if ($logged && isset($_FILES['file'])) { $f = $_FILES['file']; if ($f['error'] !== UPLOAD_ERR_OK) { $msgs = array( UPLOAD_ERR_INI_SIZE => 'Soubor překračuje upload_max_filesize (' . ini_get('upload_max_filesize') . ').', UPLOAD_ERR_FORM_SIZE => 'Soubor je příliš velký.', UPLOAD_ERR_PARTIAL => 'Soubor se nahrál jen částečně.', UPLOAD_ERR_NO_FILE => 'Nevybral jsi soubor.', ); $error = isset($msgs[$f['error']]) ? $msgs[$f['error']] : 'Chyba nahrávání (kód ' . $f['error'] . ').'; } elseif ($f['size'] > $MAX_SIZE) { $error = 'Maximální velikost je 64 MB.'; } else { // Očištění názvu: jen písmena, čísla, tečka, pomlčka, podtržítko $name = basename($f['name']); $name = preg_replace('/[^A-Za-z0-9._-]/', '_', $name); $name = ltrim($name, '.'); $ext = strtolower(pathinfo($name, PATHINFO_EXTENSION)); $parts = explode('.', strtolower($name)); $blocked = false; foreach ($parts as $i => $p) { if ($i > 0 && in_array($p, $BLOCKED_EXT, true)) { $blocked = true; } } if ($name === '' || $ext === '') { $error = 'Neplatný název souboru.'; } elseif ($blocked) { $error = 'Tento typ souboru není povolen.'; } elseif (strtolower($name) === strtolower(basename(__FILE__))) { $error = 'Tento název nelze použít.'; } elseif (file_exists($UPLOAD_DIR . $name) && empty($_POST['overwrite'])) { $error = 'Soubor ' . $name . ' už existuje. Zaškrtni „přepsat“, pokud ho chceš nahradit.'; } elseif (!move_uploaded_file($f['tmp_name'], $UPLOAD_DIR . $name)) { $error = 'Soubor se nepodařilo uložit (práva ke složce?).'; } else { @chmod($UPLOAD_DIR . $name, 0644); $link = $BASE_URL . rawurlencode($name); } } } function h($s) { return htmlspecialchars($s, ENT_QUOTES, 'UTF-8'); } ?>
Max. 64 MB (server: upload_max_filesize = = h(ini_get('upload_max_filesize')) ?>, post_max_size = = h(ini_get('post_max_size')) ?>)