Autor | Zpráva | ||
---|---|---|---|
Stepanka Profil * |
#1 · Zasláno: 22. 2. 2009, 16:12:59
Ahoj,
prosím, mohl by mi někdo poradit, jak zajistím, aby se mi z webu stáhnul jakýkoliv soubor? Tzn. *.pdf, *.ps, *.eps, *.jpeg, *.bmp, *.zip a jiné. Uživatelé můžou nahrávat jakýkoliv z těchto souborů (možná i jiné) a já chci zajistit jejich správné stahování v administrační části. Zatím mám toto: $soubor = "../Files/".$_GET['id']."/".$_GET['file']; header("Content-Description: File Transfer"); header("Content-Type: application/force-download"); header("Content-Disposition: attachment; filename=\"".$_GET['file']."\""); ReadFile ($soubor); Ale nestahuje mi to správně všechny přípony. Třeba když stáhnu nějaký *.JPG, tak mi to nahlásí, že Náhled není k dispozici. Chtěla bych, aby to fungovalo jako stahování příloh v mailu, tam ten mail taky nikdy neví, o jaký soubor se bude jednat a stáhne ho správně.. Nevěděl byste někdo, jak na to? Budu moc vděčná... Díky. |
||
Kcko Profil |
#2 · Zasláno: 22. 2. 2009, 17:09:48
Zkus tohle
/** * Download through browser */ $file = "./download/".$_SERVER["QUERY_STRING"]; $filename = basename($file); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Content-Type: application/force-download"); header("Content-Description: File Transfer"); header("Content-Disposition: attachment; filename=".str_replace(' ', '_', $filename).";"); header("Content-Length: ".filesize($file)); header("Content-Transfer-Encoding: binary"); @readfile($file); exit(); |
||
Stepanka Profil * |
#3 · Zasláno: 22. 2. 2009, 18:23:34
hmm, pořád to samé.. Něco (třeba *.zip, *.pdf) to stahuje, ale například *.JPG, *.jpeg, *.bmp ne..
Vždycky když kliknu na ten soubor, otevře se to všem známé okno "Otevírání P123456.JPG zvolili jste otevírat P123456.JPG což je: komprimovaná složka (metoda ZIP) z: http://localhost Co má aplikace Firefox udělat s tímto souborem? radiobutton Otevřít radiobutton Uložit atd ...." Zaráží mě na tom to, co jsem zvýraznila: "což je: komprimovaná složka (metoda ZIP)" Když stahuju obrázek z mailu, objeví se: "což je: JPEG Image" Nevíte někdo, kde by mohla být chyba? Děkuju. |
||
Stepanka Profil * |
#4 · Zasláno: 22. 2. 2009, 22:31:48
už nic, už mi to funguje..
|
||
Časová prodleva: 3 měsíce
|
|||
dia Profil * |
#5 · Zasláno: 18. 5. 2009, 18:34:36
A jak jsi to vyřešila?
|
||
dia Profil * |
#6 · Zasláno: 18. 5. 2009, 18:35:12
bože tyhle lidi
|
||
dia Profil * |
#7 · Zasláno: 18. 5. 2009, 18:47:09
ŘEŠENÍM JE TOTO:
$folder_new je složka nad souborem $soubor2 je libovolný název podstrčený uživateli $soubor1 relativní cesta k souboru (relativní s http://... ne absolutní realpath() chmod($folder_new, 0777); header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.basename($soubor2)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($soubor1)); ob_clean(); flush(); readfile($soubor1); chmod($folder_new, 0644); |
||
Časová prodleva: 16 let
|
0