Autor Zpráva
Chenzee
Profil
Dobrý den,
chtěl bych vás požádat o radu. Mám script v php, kterým vytvořím z mysql tabulku (soubor pro excel). Tento soubor se mi uloží do adresáře na serveru. Pak pomocí readfile chci tento soubor stáhnout do PC. V Chromu mi to celé funguje správně, ale v IE (na více PC) mi to neudělá vůbec nic. Tím myslím, že to nezahlásí žádnou chybu, nezobrazí se dialog pro uložení, soubor se neotevře, nekoukne na mě žádné okno že něco bylo zablokováno apod. Prostě nic. Snažil jsem se hledat po celém webu ale nic. Všude se uvádí, že stačí nastavit headers a hotovo. Mě to však nefunguje. Na linuxsoft (lekce 31) je tutoriál, kde je možnost vyzkoušet jimi uvedený script. Bohužel se i tento chová zcela identicky. Koukal jsem se do nastavení IE zda něco není disabled ale nic špatného nevidím. Nemáte prosím nějakou zkušenost, co to může dělat? Prázdné znaky atd. jsem již kontroloval.

Zde přikládám kód (ale testoval jsem snad všechny nalezené kombinace headers (i ty, které zde momentálně nemám))
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Content-Description: File Transfer");
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=\"".basename($cesta.$soubor)."\"");
//header("Content-Disposition: attachment; filename=\"".basename($soubor)."\"");
//header("Content-Disposition: attachment; filename=\"".$soubor."\"");
ReadFile ($cesta.$soubor); // otevře vytvořený soubor
//ReadFile ($soubor); // otevře vytvořený soubor
//unlink ($cesta.$soubor);  // smaže vytvořený soubor

Děkuji za radu a trpělivost.
Chenzee
Profil
Dobré ráno,
tak je to vyřešeno. Po asi pátém restartu PC se to umoudřilo a už to chodí. Ach jo.
Tori
Profil
Chenzee:
Přemlouvat IE restartama PC mi připadá celkem násilné. :-) Zkuste místo téhle hlavičky: header("Content-Type: application/force-download"); nastavit MIME typ dokumentu, tj. header("Content-Type: application/vnd.ms-excel"); (nebo header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); pro Excel 2007 .xlsx). Možná má IE nastavené, aby z bezpeč.důvodů nestahoval soubory s neznámým typem obsahu anebo vůbec nezná tu hlavičku.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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