Autor | Zpráva | ||
---|---|---|---|
spiider Profil * |
#1 · Zasláno: 30. 4. 2010, 11:02:11
Ahoj napsal jsem si takového menšího klienta v PHP a vše je v pohodě, až na to, že když kliknu na nějakou přílohu a zobrazí se mi okno pro otevření nebo uložení, tak přímé otevření nefunguje a píše to : "Soubor nemůže být otevřen, protože asociovaná aplikace neexistuje". Pokud dám uložit a pak soubor otevřu jde vše v pořádku. Kód pro zpracování příloh mám tento:
header('Content-Type: application/x-unknown-'.$_GET['mime']); if (eregi('MSIE', $HTTP_USER_AGENT) && eregi('5.5', $HTTP_USER_AGENT)) header('Content-Disposition: filename=' . ($_GET['filename'])); else header('Content-Disposition: attachment; filename=' . ($_GET['filename'])); $user=neco@neco.cz'; $pass='heslo'; $host='{imap.neco.cz/notls/imap4}INBOX'; $mail=@imap_open($host,$user,$pass); $file = imap_fetchbody($mail, $_GET['id'], $_GET['part']); imap_close($mail); if ($_GET['transfer'] == 'BASE64') $file = imap_base64($file); elseif($_GET['transfer'] == 'QUOTED-PRINTABLE') $file = imap_qprint($file); header('Content-Length:'.filesize($file)); echo $file; Díky za rady. |
||
AM_ Profil |
#2 · Zasláno: 30. 4. 2010, 15:52:31
spiider:
„header('Content-Type: application/x-unknown-'.$_GET['mime']);“ Nechápu význam tohoto: Buď, pokud chceš, aby se příloha vždy nabízela ke stažení, tak dej: header('Content-Type: application/octet-stream'); pokud ji má zobrazit prohlížeč (pokud to umí) tak musíš předat platný content-type, nicméně prefixace nějakým x-unknown- mi není moc jasná, to bude zdroj toho problému. „eregi('MSIE', $HTTP_USER_AGENT)“ místo eregi používej preg_match('~vyraz~i', $text); od PHP5.3 použití ereg* funkcí hází E_DEPRECATED. v tomhle případě vůbec regulár nepoužíváš, takže vhodnější bude stripos() „$mail=@imap_open($host,$user,$pass);“ zavináč dej pryč. Při vývoji aplikace by sis měl nechávat zobrazovat všechny chyby, naopak v ostrém provozu všechny globálně vypnout pomocí ini_set('display_errors', 'off'); |
||
Časová prodleva: 14 let
|
0