Autor Zpráva
Stepanka
Profil *
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
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 *
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 *
už nic, už mi to funguje..
dia
Profil *
A jak jsi to vyřešila?
dia
Profil *
bože tyhle lidi
dia
Profil *
Ř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);

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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