Diskuze: Uložení stránky do souboru
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 3 zpráv z 3.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Kdo vi, jak to resi moderni prohlizece. Stranka google neni lokalni a muzes narazit na blokaci CORS, obsah cicich stranek nelze modifikovat ani ukladat..
Soubory se daji stahovat v php pres echo a file_get_contents . Php soubor na tvem
lokalnim serveru je pak chapany jako lokalni a lze s nim v javascriptu
prohlizece pracovat. A nebo ho muzes zrovna nastavit ke stahovani zmenou
header().
google = php download file from url
<?php
set_time_limit(0);
$file = file_get_contents('path of your file');
file_put_contents('file.ext', $file); // ulozi na server
// nebo
echo $file; // vypise na obrazovku
// a nebo
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename('soubor').'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . strlen($file));
flush(); // Flush system output buffer
echo $file;
?>
Php je program, ktery bezi na serveru jako sluzba a preklada php kod na cpp kod, ktery pak vykona a posle uzivateli soubor (obvykle html kod, ale i soubor jako soubor, obrazek a pod)
google = php html minimal download file from url file_get_contents
--- stahuj.php ---
<?php
$filename = 'test.html';
$filepath= '';
$url = "http://www.example.com/".$filename; // $url = isset($_GET['url']) ? $_GET['url'] : '';
if ($url=='') exit;
$context = stream_context_create(array('http' => array('header'=>'Connection: close')));
$content = file_get_contents($url);
$filesize = strlen($content);
header("Cache-control: private");
header("Content-type: application/force-download");
header("Content-transfer-encoding: binary\n");
header("Content-disposition: attachment; filename=\"$filename\"");
header("Content-Length: ".$filesize);
echo $content;
exit;
?>
Samozrejme je mozne pouzit jinou metodu nez file_get_contents. Treba file, read, readfile, fsock, curl...
https://www.abeautifulsite.net/…oads-in-php/
Tady je treba priklad stahovani souboru, ktery uz na serveru mas, pomoci php.
Tam obsah souboru ctou pres readfile, treba. Soucasne je tam fakt naproste
minimum nastaveni hlavicek header. Ale lepsi je pohlidat si i nastaveni kesovani
(pragma, cache-control, expired, viz predchozi prispevek). Zminuji to v tom
clanku pozdeji. Velikost souboru na tvem serveru se da zjistit i pomoci
filesize.
$file = "filename.ext";
// Quick check to verify that the file exists
if (!file_exists($file)) die("File not found");
// Force the download
header("Content-Disposition: attachment; filename="" . basename($file) . """);
header("Content-Length: " . filesize($file));
header("Content-Type: application/octet-stream;");
readfile($file);
Zobrazeno 3 zpráv z 3.