Autor | Zpráva | ||
---|---|---|---|
tonda13 Profil |
#1 · Zasláno: 5. 9. 2010, 21:13:05 · Upravil/a: tonda13
Zdravim všechny,
potřeboval bych poradit nebo nasměrovat co konkrétně hledat. Potřeboval bych při volání PDF souboru (nebo jiného souboru co se normálně otevírá v prohlížeči) takový script, který by takový soubor stáhl a nikoli zobrazil v prohlížeči. Doufám že je to pochopitelné a děkuji za vaše rady. |
||
wolfik Profil |
#2 · Zasláno: 5. 9. 2010, 21:22:08
Dělá se to například pomocí sad hlaviček.
$soubor = $_GET['nazev']; header("Content-Description: File Transfer"); header("Content-Type: application/force-download"); header("Content-Length: ".filesize($soubor)); header('Content-Disposition: attachment; filename=' . basename($soubor)); readfile($soubor); Je nutné ošetřit, aby nešly stáhnout všechny soubory (například konfigurační). |
||
tonda13 Profil |
#3 · Zasláno: 5. 9. 2010, 21:47:07
wolfik:
Díky toto funguje. Akorát když to stáhnu, konkrétně PDF soubor, tak při otevírání v Acrobat Readeru to vypíše hlášku, že jej nemůže otevřít kvůli špatnému dekódování... |
||
wolfik Profil |
#4 · Zasláno: 5. 9. 2010, 21:50:04
tonda13:
Nemyslím si, že by to byla chyba skriptu. Je to originální PDF funkční? Stáhl se ten soubor celý? |
||
tonda13 Profil |
#5 · Zasláno: 5. 9. 2010, 22:09:02 · Upravil/a: tonda13
wolfik:
Pravda, soubor se nestáhl celý, ale proč? Celý script je takto: $soubor = $_GET['co']; header('Content-Description: File Transfer'); header('Content-Type: application/force-download'); header('Content-Length: '.filesize($soubor)); header('Content-Disposition: attachment; filename=' . basename($soubor)); readfile('data/' . $soubor); Název souboru včetně připony pak zadávam v parametru 'co'. Při přímém zadání souboru se normálně v pořádku otevře uvnitř prohlížeče. |
||
Keeehi Profil |
#6 · Zasláno: 5. 9. 2010, 22:18:39 · Upravil/a: Keeehi
problém je zde:
header('Content-Length: '.filesize($soubor)); srávně: header('Content-Length: '.filesize('data/'.$soubor)); |
||
tonda13 Profil |
#7 · Zasláno: 6. 9. 2010, 16:01:50
Jo no jo, děkuji funguje to :-)
|
||
Časová prodleva: 14 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0