Komentáře k článku

Práce se soubory v prohlížeči, díl 1

Už několikrát jsme v článcích na Zdrojáku použili FileAPI, relativně novou součást webových technologií, která umožňuje číst, zpracovávat a ukládat soubory. V této minisérii se podíváme na nejrůznější nástroje a rozhraní, která využijete při zpracovávání souborů v prohlížečích, trochu podrobněji.

Zpět na článek

16 komentářů k článku Práce se soubory v prohlížeči, díl 1:

  1. bauglir

    Poslední ukázka

    Pozor na poslední ukázku, čtení obsahu souboru je vhodné pouze u malých souborů, popřípadě tam, kde obsah souboru skutečně potřebujete… DataURL videa vložené do DOMu by mohlo potrápit ledasjaký počítač :)
    Pokud máte BLOB a chcete jej zobrazit, doporučují spíše createObjectURL, tedy vytvoření URL na daný blob bez načítání obsahu.

    1. Martin MalýAutor příspěvku

      Re: Poslední ukázka

      … o němž bude řeč v dalším díle. Ale díky za připomínku – pro readAsDataURL platí to, co bylo zmíněno v samostatmém článku o těchto URL.

    2. Roman Jakubec

      Re: Poslední ukázka

      Podobný problém jsem řešil. Snažil jsem se načíst hlavičku gigabytového souboru. Bohužel jsem se k načtení hlavičky nedopracoval. Nevíte zda existuje nějaký způsob?

  2. besh

    input nebo drag'n'drop

    Z clanku by se mohlo zdat, ze lze pouzit bud file input nebo drag’n’drop. Pravdou ale je, ze lze pouzit oboji a vzhledem k pouzitelnosti bych to i doporucil. Asi nejhorsi variantou by bylo vyuziti samotne drag’n’drop funcionality, protoze ne kazdy v tahani mysi spatruje nejakou vyhodu. Obsluzna funkce muze byt stejna pro oba pripady, takze neni duvod to tak neudelat.

  3. starenka

    OT ad 0: (vylev zhrzeneho genia)

    To je hezky, atribut download… Kdyz jsem pred 5+ lety psal do W3C, jestli by treba nahodou atribut checksum nebyl dobrej napad (proste by prohlizec po stazeni overil, ze je soubor stazenej v poradku), tak jsem nestal ani za odpoved. Ze bych to zkusil znova?

      1. Jiří Kosek

        Re: OT ad 0: (vylev zhrzeneho genia)

        Jistou šanci bych tu skutečně viděl. Když si Hixie svéhlavě bez nějaké diskuse přidal atribut download, proč by nepřidal ještě něco checksum. ;-)

    1. František Kučera

      HTTP ne HTML

      Od toho máme HTTP hlavičku Content-MD5

      (je fakt, že nějaký modernější algoritmus by se hodil – ale pokud má jít o ochranu proti náhodnému poškození souboru, je i md5 použitelná)

    2. František Kučera

      Re: OT ad 0: (vylev zhrzeneho genia)

      BTW: a kdyby to mělo být přímo součástí odkazu* a ne HTTP odpovědi, tak by to šlo krásně řešit pomocí jmenných prostorů – např.:

      <a href="http://…" otisk:sha1="5e0c­a0e40a16c9fbfeb4d251ec2a­477f38fab9e3">sou­bor.txt</a>

      Nemusí být totiž všechno naplácané v základním standardu a povinné pro všechny – přesně tohle je totiž funkcionalita typu „něco navíc“, kterou můžou implementovat některé weby a některé prohlížeče. Standard by měl být podle mého co nejjednodušší a další funkcionalitu řešit modulárně (a oddělit jednotlivé skupiny funkcí do jmenných prostorů).

      *) což může mít taky smysl – když budeme odkazovat na soubor na cizím serveru, kterému nedůvěřujeme.

      1. Martin MalýAutor příspěvku

        Re: OT ad 0: (vylev zhrzeneho genia)

        Od kdy je to, co je ve „standardu“, povinné (!) „pro všechny“?

        1. František Kučera

          Re: OT ad 0: (vylev zhrzeneho genia)

          Tak striktně vzato, nemusí se vlastně vůbec nic :-) (snad leda umřít). Ale otázka je, co je vhodnější.

          A když zvážím dvě možnosti:

          1) Jeden velký všeobjímající standard, který zahrnuje spoustu funkcí, ale málokdo ho dodržuje. Všichni budou říkat: „Podporujeme standard XYZ!“ a malým písmem budou dodávat: „ale ne úplně na 100%“ a ještě menším (pokud vůbec): „tyhle funkce podporujeme a tyhle ne, u ostatních nevíme, a možná jsme na něco zapomněli, tak to musíte vždycky vyzkoušet“.

          2) Relativně malý základní standard, který obsahuje jen tu nejdůležitější funkcionalitu a který není problém 100% implementovat. A k němu dodatečné moduly zaměřené vždy na nějakou funkční oblast. Navíc autorem těch modulů může být i někdo jiný než autor základního standardu…

          Mně je bližší ten modulární způsob – kromě jiného to lépe umožňuje práci stylem: píšu web/aplikaci vůči standardu a ne vůči konkrétním prohlížečům. Naházet všechno na jednu hromadu a říct: „podporujte si z toho, co chcete“ mi moc rozumné nepřijde a zavání to starými (ne)pořádky, které na webu kdysi panovaly.

          1. Jiří Kosek

            Re: OT ad 0: (vylev zhrzeneho genia)

            Každý rozumně napsaný standard má sekci nazvanou „Conformance“, kde je definováno, co je povinné, co nepovinné. Někdy existuje i několik tříd shody s normou, třeba pro různé druhy aplikací.

            Jestli je standard malý nebo velký je jedno. Důležité je, zda zajistí interoperabilitu. Mít dobré a testovatelné „Conformance“ kritéria je většinou jen podmínka nutná, nikoliv postačující.

      2. Jiří Kosek

        Re: OT ad 0: (vylev zhrzeneho genia)

        Namespace v HTML5? Tak to nepůjde, z toho by chlapci z WHATWG dostali pupínky. ;-)

        „Distributed extensibility“ je totiž pro WHATWG priorita -1000000 a červený hadr. HTML5 není sémantický značkovací jazyk, který by šlo rozšiřovat. Je to platforma pro tvorbu aplikací naroubovaná na HTML. S tím je potřeba se smířit. Slova „hypertext“ a „markup“ v názvu HTML5 jsou dneska již zavádějící. Vždyť se také dlouho HTML5 pod křídly WHATWG jmenovalo „Web Applications“.

  4. misaz

    A výsledek?

    Ahoj,
    pěkný článek, ale nějak jsem nepochopil jak mam obsah souboru text.txt dostat do proměnné mujtext.
    Co proto musím udělat?

Napsat komentář

Tato diskuse je již příliš stará, pravděpodobně již vám nikdo neodpoví. Pokud se chcete na něco zeptat, použijte diskusní server Devel.cz

Zdroj: https://www.zdrojak.cz/?p=3530