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.
Názory k článku
Práce se soubory v prohlížeči, díl 1
Poslední ukázka
celé vláknoRe: Poslední ukázka
celé vlákno... 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.
Re: Poslední ukázka
celé vláknoPodobný 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?
Re: Poslední ukázka
celé vláknoDobrý den,
BLOB má metodu slice, pokud tedy ten BLOB máte... kde ho chcete vzít?
input nebo drag'n'drop
celé vláknoZ 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.
Re: input nebo drag'n'drop
celé vláknoDobrá připomínka, v článku to vypíchnu. Díky.
OT ad 0: (vylev zhrzeneho genia)
celé vláknoTo 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?
Re: OT ad 0: (vylev zhrzeneho genia)
celé vláknoNapiš Hixiemu... ian@hixie.ch
Re: OT ad 0: (vylev zhrzeneho genia)
celé vláknoJistou š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. ;-)
HTTP ne HTML
celé vláknoOd 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á)
Re: OT ad 0: (vylev zhrzeneho genia)
celé vláknoBTW: 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="5e0ca0e40a16c9fbfeb4d251ec2a477f38fab9e3">soubor.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.
Re: OT ad 0: (vylev zhrzeneho genia)
celé vláknoOd kdy je to, co je ve "standardu", povinné (!) "pro všechny"?
Re: OT ad 0: (vylev zhrzeneho genia)
celé vláknoTak 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.
Re: OT ad 0: (vylev zhrzeneho genia)
celé vláknoKaž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í.
Re: OT ad 0: (vylev zhrzeneho genia)
celé vláknoNamespace 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".