abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 05:33 | IT novinky

    Samsung představil headset Galaxy XR se 4K Micro-OLED displeji, procesorem Snapdragon XR2+ Gen 2, 16 GB RAM, 256 GB úložištěm, operačním systémem Android XR a Gemini AI.

    Ladislav Hagara | Komentářů: 1
    dnes 05:22 | Nová verze

    Před konferencí Next.js Conf 2025 bylo oznámeno vydání nové verze 16 open source frameworku Next.js (Wikipedie) pro psaní webových aplikací v Reactu. Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    včera 23:33 | Komunita

    Sovereign Tech Fund oznámil finanční podporu následujících open source projektů: Scala, SDCC, Let's Encrypt, Servo, chatmail, Drupal, Fedify, openprinting, PHP, Apache Arrow, OpenSSL, R Project, Open Web Docs, conda, systemd a phpseclib.

    Ladislav Hagara | Komentářů: 0
    včera 13:11 | Nová verze

    Bylo vydáno OpenBSD 7.8. S předběžnou podporou Raspberry Pi 5. Opět bez písničky.

    Ladislav Hagara | Komentářů: 0
    včera 05:44 | Nová verze Ladislav Hagara | Komentářů: 2
    včera 05:22 | Bezpečnostní upozornění

    Byly publikovány informace o kritické zranitelnosti v knihovně pro Rust async-tar a jejích forcích tokio-tar, krata-tokio-tar a astral-tokio-tar. Jedná se o zranitelnost CVE-2025-62518 s CVSS 8.1. Nálezci je pojmenovali TARmageddon.

    Ladislav Hagara | Komentářů: 4
    21.10. 23:15 | Nová verze

    AlmaLinux přinese s verzí 10.1 podporu btrfs. XFS bude stále jako výchozí filesystém, ale instalátor nabídne i btrfs. Více informací naleznete v oficiálním oznámení.

    Max | Komentářů: 3
    21.10. 22:33 | IT novinky

    Společnost OpenAI představila svůj vlastní webový prohlížeč ChatGPT Atlas. Zatím je k dispozici pouze na macOS.

    Ladislav Hagara | Komentářů: 0
    21.10. 14:33 | Nová verze

    Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.5 (Mastodon). Přehled novinek i s videi a se snímky obrazovek v oficiálním oznámení. Podrobný přehled v seznamu změn.

    Ladislav Hagara | Komentářů: 3
    21.10. 13:55 | IT novinky

    Rodina jednodeskových počítačů Orange Pi se rozrostla (𝕏) o Orange Pi 6 Plus.

    Ladislav Hagara | Komentářů: 14
    Jaké řešení používáte k vývoji / práci?
     (36%)
     (48%)
     (20%)
     (20%)
     (22%)
     (18%)
     (21%)
     (18%)
     (18%)
    Celkem 257 hlasů
     Komentářů: 14, poslední 14.10. 09:04
    Rozcestník

    Dotaz: Jak nastavit kodovani nazvu souboru pri jeho prenosu?

    9.4.2007 20:05 Pavel
    Jak nastavit kodovani nazvu souboru pri jeho prenosu?
    Přečteno: 564×

    Ahoj, posilam www prohlizeci beznym zpusobem soubor, nasleduje ukazkovy PHP kod, $s je objekt reprezentujici soubor:

    $r = $this->getResponse();
    $r->setHttpHeader('Cache-Control', 'private');
    $r->setHttpHeader('Expires', gmdate('D, d M Y H:i:s') . ' GMT');
    $r->setHttpHeader('Content-Description', 'File Transfer');
    $r->setHttpHeader('Content-Transfer-Encoding', 'binary');
    $r->setHttpHeader('Content-Length', filesize($s->getCesta()));
    $r->setHttpHeader('Content-Disposition', 'attachment; filename="' . $s->getNazev() . '"');

    Problem je v tom, ze nazev souboru (hlavicka Content-Disposition: attachment; filename=<nejaky nazev>), muze obsahovat diakritiku, tudiz bych zaroven prohlizeci potreboval sdelit, jake kodovani je v nazvu souboru pouzito.

    Odpovědi

    regnarg avatar 10.4.2007 12:41 regnarg | skóre: 20 | blog: rm -rf /this/blog
    Rozbalit Rozbalit vše Re: Jak nastavit kodovani nazvu souboru pri jeho prenosu?
    Možná by se dalo využít funkce popsané na http://api.drupal.org/api/4.6/function/mime_header_encode...
    S láskou se nerodíme, ale s láskou se stáváme lidmi. --Simone De Beauvoirová
    10.4.2007 16:54 Pavel
    Rozbalit Rozbalit vše Re: Jak nastavit kodovani nazvu souboru pri jeho prenosu?

    Bohuzel, tohle nefunguje. Timhle zpusobem se bezne koduji neascii retezce v hlavickach e-mailu, ale nejde to pouzit pro prenos souboru (resp. Firefox to vezme, IE zobrazuje kraviny). Dival jsem se do RFC 2183 a tam je primo specifikovano, ze pro parametr filename je vyzadovano US-ASCII. Leda ze by mezitim vyslo novejsi RFC.

    I kdyz pozor, ted jsem narazil na odkaz na Intervalu, kde doporucuji kodovani URL encode. Vyzkouseno, kodovani pomoci funkce urlencode pro zmenu chodi v IE a nechodi ve Firefoxu (vitejte ve svete webu). V IE mam jen misto mezer plusy, coz by nevadilo.

    regnarg avatar 10.4.2007 18:35 regnarg | skóre: 20 | blog: rm -rf /this/blog
    Rozbalit Rozbalit vše Re: Jak nastavit kodovani nazvu souboru pri jeho prenosu?
    Tak už jenom zbývá identifikovat prohlížeč a vybrat kódování, nebo se prostě vyhnout neascii názvům...
    S láskou se nerodíme, ale s láskou se stáváme lidmi. --Simone De Beauvoirová
    10.4.2007 19:49 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: Jak nastavit kodovani nazvu souboru pri jeho prenosu?
    Vyřešili jsme to tak, že v IE konvertujeme název do ASCII, v ostatních prohlížečích posíláme kódování.
    11.4.2007 13:18 Pavel
    Rozbalit Rozbalit vše Re: Jak nastavit kodovani nazvu souboru pri jeho prenosu?
    A jakym zpusobem kodovani posilate?
    11.4.2007 14:42 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: Jak nastavit kodovani nazvu souboru pri jeho prenosu?
    Printed quotable do UTF-8 (MimeUtility.encodeText(origFilename, "UTF-8", "Q")), pro IE konvertujeme na bezpecne texty pomoci nasledujici konverzni mapy latin2 -> safe
    /**
         * Tabulka pro odstraneni diakritiky a nekterych nebezpecnych znaku (lomitko, uvozovky, backcslash).
         */
        private static final char[] SAFE_FILENAME_LATIN2 =
                ("________________________________" +
                        //mezera zustava, vykricnik take, ale misto uvozovek je apostrof
                        "\u0020!'#$%&'()*+,-." +
                        //lomitko nesmi byt v nazvu souboru nikde --> pouziju carku
                        //take dvojtecku nahradim strednikem
                        ",0123456789;;" +
                        //spicate zavorky nahradim slozenyma (kvuli windows)
                        "{=}" +
                        //kvuli windows nahradim otaznik za vykricnik
                        "!@" +
                        "ABCDEFGHIJKLMNOPQRSTUVWXYZ[" +
                        //misto backslashe je vlnovka
                        "~]^_`" +
                        //svislou caru take nahradim vykricnikem
                        "abcdefghijklmnopqrstuvwxyz{!}~_" +
                        //vsechny dalsi nezname znaky budu vynechavat!
                        "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +
                        "A\0L\0LS\0qSSTZmZZ\0a\0lqls\0\0sstzqzzRAAAALCCCEEEEIIDDNNOOOOpRUUUUYTsraaaalccceeeeiiddnnoooosruuuuyt\0")
                        .toCharArray();
    11.4.2007 01:12 Ash
    Rozbalit Rozbalit vše Re: Jak nastavit kodovani nazvu souboru pri jeho prenosu?
    Probl. s plusy by možná vyřešil rawurlencode, i když už si to teď moc nevybavuji.
    11.4.2007 14:31 skonciljsem | skóre: 20
    Rozbalit Rozbalit vše Re: Jak nastavit kodovani nazvu souboru pri jeho prenosu?
    Máš pravdu. rawurlencode nahradí nebezpečné znaky escape sekvencemi.
    11.4.2007 16:21 Pavel
    Rozbalit Rozbalit vše Re: Jak nastavit kodovani nazvu souboru pri jeho prenosu?

    Pokusim se shrnout poznatky:

    1. Pro IE se diakritika musi kodovat pomoci rawurlencode() - $r->setHttpHeader('Content-Disposition', 'attachment; filename="' . rawurlencode($s->getNazev()) . '"');
    2. Pro Firefox a Operu staci znakova sada UTF-8, nic dalsiho neni potreba - $r->setHttpHeader('Content-Disposition', 'attachment; filename="' . $s->getNazev() . '"');

    Jeste ale nevim co posilat Konqueroru, ten moji snahu zatim ignoruje.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.