PHP Nette - jak stahovat soubory nad adresářem www (z rootu)

Co nejvíce stručné řešení pro vývojáře a linux administrátory

Na superuser.cz nenaleznete žádný zbytečný obsah, vždy se jde přímo k věci, denně se zde objevují nové problémy a jejich řešení...

Začít používat

PHP Nette - jak stahovat soubory nad…

04.05.2020 napsal Prajka

Vyřešeno PHP Nette - how to download files above the www directory (from root)
Dobrý den,

potřeboval bych na mém webu, který je napsán v PHP Nette, použít funkci, která by umožnila stahovat soubory mimo obvyklou cestu web/www/uploads z web/uploads, tzn. z adresáře na stejné úrovni jako je app, vendor, www... Jak by se to dalo řešit? Cílem je, aby cesta k souborům nebyla pro návštěvníka vidět a nedalo se stahovat "tipováním" cesty k souborům. Díky

The English language is translated by machine - the translator can modify eg cited codes = it is better to use codes from the Czech original.

PHP Nette - how to download files above the www directory (from root)

Hello,

I would need to use a function on my website, which is written in PHP Nette, that would allow downloading files outside the usual path of web / www / uploads from web / uploads, ie. from a directory at the same level as app, vendor, www ... How could this be solved? The goal is that the file path is not visible to the visitor and cannot be downloaded by "tipping" the file path. Thanks

Zobrazit odpovědi

Nejlépe hodnocení uživatelé
Hanz

Počet UP: 5142

React: 224

Rusty

Počet UP: 2365

React: 105

OL3G

Počet UP: 1651

React: 65

Strosmajer

Počet UP: 502

React: 31

Oxytocin

Počet UP: 303

React: 27

SYSTEM

Počet UP: 443

React: 27

Hyacint

Počet UP: 43

React: 22

Odpovědi na dotaz

RE: PHP Nette - jak stahovat…

20.05.2020 odpověděl Rusty (update 20.05.2020)

Zkontrolováno

Dobrý den,

ano, já stahování nad adresářem www v Nette řeším takto:


public function getFile($up_id)
{
$document_root = $_SERVER['DOCUMENT_ROOT'];

//odebere www na konci v ceste $document_root
$path = substr($document_root, 0, -3);
$file = $this->getUpload($up_id);
$file = $path . $file->up_path;

if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
}
return $file;
}

The English language is translated by machine - the translator can modify eg cited codes = it is better to use codes from the Czech original.

PHP Nette - how to download files above the www directory (from root)

Hello

yes, I handle downloading above the www directory in Nette as follows:


public function getFile($up_id)
{
$document_root = $_SERVER['DOCUMENT_ROOT'];

//odebere www na konci v ceste $document_root
$path = substr($document_root, 0, -3);
$file = $this->getUpload($up_id);
$file = $path . $file->up_path;

if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
}
return $file;
}
Tento web používá k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. Používáním tohoto webu s tím souhlasíte. Další informace