Autor | Zpráva | ||
---|---|---|---|
zhaled Profil * |
#1 · Zasláno: 7. 12. 2013, 23:35:57
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 |
#2 · Zasláno: 7. 12. 2013, 23:42:03
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 |
#3 · Zasláno: 7. 12. 2013, 23:51:28 · Upravil/a: Zhaled
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 |
#4 · Zasláno: 8. 12. 2013, 00:11:18
Zhaled:
Zkontroluj ve vývojářských nástrojích libovolného prohlížeče jaké hlavičky skutečně dorazí. |
||
Chro Profil |
#5 · Zasláno: 8. 12. 2013, 00:11:59
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 |
#6 · Zasláno: 8. 12. 2013, 00:35:49
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 |
#7 · Zasláno: 8. 12. 2013, 01:39:57
Zhaled:
V názvech souborech by neměla být diakritika. Před samotným souborem vypisuješ hlavičku webu. |
||
Zhaled Profil |
#8 · Zasláno: 8. 12. 2013, 10:28:22
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 |
#10 · Zasláno: 9. 12. 2013, 14:12:25
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.
|
||
Časová prodleva: 10 let
|
0