Autor Zpráva
zhaled
Profil *
Dobrý den,
prosím o radu, vím, že se to tu řešilo asi dvacetkrát, ale nějak jsem nenašel nikoho se stejnou chybou jako se stává mě. Vše "funguje" na oko, jenže když stahuji jakýkoliv typ souboru tak vždy se stahuje soubor se správným jménem ale velikosti od 4,1 do 4,4 KB a s očekáváním nejde otevřít nebo se nezobrazí a hlásí chybu. Zkusil jsem spoustu skriptů co jsem našel i návody co jste zadávali zde, ale furt nefunguje.
Nevíte někdo v čem dělám chybu?

<?php
$soubor= $_GET['nazev_soubory'];

header("Content-Description: File Transfer");
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=\"$soubor\"");

readfile("./soubory/$soubor");
?>

Předem moc děkuji za každou radu
Chro
Profil
Před headery nesmí být žádný výstup, např. HTML. Za readfile byl dal funkci exit; aby se případně do stahovaného souboru nepočítal následující kód.
Zhaled
Profil
Děkuju, ale i to jsem zkoušel exit;, jenže výsledek stejný. Ten kód co jsem poslal je celý " download_files.php " vůbec nic jiného v něm není. To je taky důvod proč sem píšu. Zkusil jsem už snad vše co jsem našel. Původně jsem si při uploadu vytvořil i zápis do MySQL abych měl jednoduché listování a třídění souborů, vše bylo ok, než jsem narazil na to, že všechny soubory mají téměř stejnou velikost. Jen mě ještě napadlo, nemělo by mít vliv to, že do indexu includuju obsah souborů a odkaz na stahovaný soubor je: index.php?page=download_list&název_soubory=soubor.txt ?!

Netuším, ale moc děkuju


Ještě doplním, teď jsem si všimnul, že má snahu stahování zahájit jako "jpeg" ikdyž se jedná o "txt".
Jan Tvrdík
Profil
Zhaled:
Zkontroluj ve vývojářských nástrojích libovolného prohlížeče jaké hlavičky skutečně dorazí.
Chro
Profil
Ve stahovaném souboru se žádný include apod. neprovede, funkce readfile ve stahovacím souboru jen načte surová data/textový obsah souboru. Co chceš přesně stahovat si musíš sestavit ve stahovacím skriptu za headery.
Zhaled
Profil
Jan Tvrdík:
Mam tu FF, explorer a chrom a jsem takový lempl, že nevím ani u jednoho jak na to přijít. Jediné co jsem tak nějak našel bylo toto: [00:33:38.981] GET http://rofipo.cz/b/index.php?page=download_files&nazev_soubory=P%C3%A1nov%C3%A9.docx [HTTP/1.1 200 OK 234ms]
Jan Tvrdík
Profil
Zhaled:
V názvech souborech by neměla být diakritika. Před samotným souborem vypisuješ hlavičku webu.
Zhaled
Profil
Jasně, tak diakritika ... teb soubor je už jen takové volání do tmy. Co jse měl v počítači to jsem nahrál a pak zkoušel vše stahovat. To je moje chyby, ale myslím, že to nemá vliv, protože u souboru P8088836001.jpg je to stejný problém. Hlavička webu se mi vypisuje z indexu, jinde ji nemám. I když cestu z indexu (index.php?page=download_files&nazev_soubory=soubor.php) přepíšu na cestu "download_files.php?nazev_soubory=soubor.php" tak jsem pořád na stejném problému. Jinak nevím jak hlavičku z indexu obcházet.
Zhaled
Profil
Tak typo souboru jsem vyřešil (hlavičkama) Takže teď už "txt" stahuju jako TXT, jen ta velikost se změnila u všeho na 715KB, tudíž předpokládám, že mám asi problém s cestou k souboru jinak mě už nic nenapadá. Jen nevím, zda do toho nekoukám už moc dloho :) Cestu mám: "http://web.cz/b/soubory/soubor.txt", tudíž u readfile má být buď: readfile("http://web.cz/n/soubory/$file"); nebo readfile("./soubory/$file");. Tedy alespoň podle mě.
Zhaled
Profil
No nic, tak děkuji "Chro a Jan Tvrdík" za pomoc. Zjistil jsem, že se mi takto stahují jen textové soubory (txt), jinak nic, takže je mi to vlastně k ničemu, ale i tak díky za snahu.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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