Autor Zpráva
Emil
Profil
Ahoj, nemohl by mi někdo poradit?
Na svém webu v kořenovém adresáři mám uložený soubor například soubor.txt
Dále tam mám uložený soubor třeba index.php
V souboru index.php mám zapsán příkazový řádek copy("soubor.txt","SdCard/soubor.txt");
Potřebuji jednu věc, aby při spuštění stránky index.php (z telefonu s androidem) mi to soubor.txt z mé stránky
zkopírovalo do telefonu, třeba na sd kartu.
Nechci užít příkaz pro download, ten se ptá na stažení.
Ale nefunguje to. Zřejmě dávám špatný cíl uložení.
Nevíte někdo co s tím.
Děkuji za odpověď.
Keeehi
Profil
Emil:
Ale nefunguje to.
Naštěstí. Umíš si představit, jaký by to byl bezpečnostní průšvih, kdyby si jakákoli webová stránka mohla ukládat cokoli do jakéhokoli zařízení na místo které by sama chtěla?

Funkce copy samozřejmě funguje jen v rámci počítače, na kterém byla spuštěna. To znamená na serveru. Tam si může kopírovat vesele soubory z jedné složky do druhé (pokud má na to práva).
Žádná funkce download přímo v PHP neexistuje. Existuje ale kód, který se ve valné většině prohlížečů projeví tak, že nabídnou soubor ke stažení.
$file = 'soubor.txt';

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="'.basename($file).'"');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    readfile($file);
    exit;
}
Emil
Profil
To je pravda, na to jsem take pomyslel, ale doufal jsem ze to nejak pujde obejit.
Takto jasem to podobne zkousel, jen jsem to chtel automaticky stahnout, toto musim potvrdit ze to chci stahnout.
Navic soubor neprepise, ale prida dals a dalsii s cislem 1,2,3.........
Ale presto dekuji za odpoved.
Keeehi
Profil
Emil:
Navic soubor neprepise, ale prida dals a dalsii s cislem 1,2,3
Za to nemůže PHP ale tvůj prohlížeč/OS. Jak se soubor bude jmenovat a kam se uloží je plně v jejich režiji.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: