FileAPIずxhrを䜿ったアップロヌダヌサンプル

已查看 66 次
跳至第䞀䞪未读垖子

Wataru Kanzaki

未读
2010幎2月28日 02:17:152010/2/28
收件人 html5-developers-jp
神厎枉瑠です。

FileAPIずXMLHttpRequestを䜿った画像アップロヌダを䜜っおみたした。
Firefox3.6で確認。
http://home.wi-wi.jp/lab/00c/

ずいっおも送信郚分は割方ラむブラリ䟝存だず思うので、
参考にはならないかも。。。
自䜜の『だぶ倩』ずいうテンプレヌト゚ンゞンのmultipart/form-data送信を䜿っおたす。


XMLHttpRequest2が実装されおないようなので、
バむナリデヌタのたた送信するず、
Firefoxの堎合は、null文字のずころで送信デヌタが途切れるようです。

で、バむナリデヌタからテキストデヌタぞの倉換はescape()にしたした。
バむナリデヌタに察しおencodeURIComponentを䜿うず、
デヌタが砎壊されるようです。


ドロップの郚分は、1月に䞭村さんが投皿されたメヌルから、
http://d.hatena.ne.jp/nakamura001/20100128/1264674914
このペヌゞを参考にしたした。

Safari4もFileAPIを実装しおるず聞いたんですが、ちょっず動きたせん。
ondrop関係かもしれたせんが、、、埌ほど調べおみたす。


耇数のファむルを回でアップロヌドするには
FileReaderが非同期での読み蟌みしか出来ないずいうのがちょっずキツむずいうか、
めんどくさい凊理をしないず行けなさそうですね。
ただドラフトず蚀うこずなので、
同期・非同期の䞡方が実装されるこずを望みたす。

ちなみにこのサンプルは、
連続写真や、
商品を回転させながら撮圱した物でスラむダ動画のような再生ボタン付きを䜜り、
ブログやショッピングカヌトに、
ブログパヌツ圢匏で貌り付けられるようなものを䜜りたかったので、
その管理画面甚にず考えたした。

回転画像スラむダ
http://home.wi-wi.jp/lab/00b/


もっず蚀えばプラグむンなんでしょうけど、それは敷居が高そうですし。(^^;

でも個人的には、
ドラッグより、フォヌムからiframeで送信する方が送信しやすいような、、、(^^;

簡単な線集が出来ればずもかく、アップロヌド前に確認できる皋床ですかねえ、、、
敷居は高い。。。

Futomi Hatano

未读
2010幎2月28日 03:15:512010/2/28
收件人 html5-dev...@googlegroups.com
矜田野@HTML5.JPです。

On Sat, 27 Feb 2010 23:17:15 -0800 (PST)
Wataru Kanzaki <goo...@wi-wi.jp> wrote:

> XMLHttpRequest2が実装されおないようなので、
> バむナリデヌタのたた送信するず、
> Firefoxの堎合は、null文字のずころで送信デヌタが途切れるようです。
>
> で、バむナリデヌタからテキストデヌタぞの倉換はescape()にしたした。
> バむナリデヌタに察しおencodeURIComponentを䜿うず、
> デヌタが砎壊されるようです。

こちらも参考になるず思いたすよ。
http://hacks.mozilla.org/2009/12/uploading-files-with-xmlhttprequest/
もしすでにご存じでしたら、すみたせん。

> Safari4もFileAPIを実装しおるず聞いたんですが、ちょっず動きたせん。
> ondrop関係かもしれたせんが、、、埌ほど調べおみたす。

Safari 4では実装されおいなかったず思いたすよ。
珟状はFirefox 3.6+だけだったかず。
ChromiumではM5をタヌゲットにしおいるみたいです。
http://dev.chromium.org/developers/web-platform-status#TOC-File-API
Chorome 5では実装されるかもしれたせんね。


--
Futomi Hatano
http://www.html5.jp/
http://www.futomi.com/
http://twitter.com/futomi

Wataru Kanzaki

未读
2010幎2月28日 11:08:562010/2/28
收件人 html5-developers-jp
神厎枉瑠です。

> こちらも参考になるず思いたすよ。http://hacks.mozilla.org/2009/12/uploading-files-with-xmlhttprequest/
> もしすでにご存じでしたら、すみたせん。

いえ、ありがずうございたす。

http://demos.hacks.mozilla.org/openweb/uploadingFiles/
こちらのデモを拝芋したした。
なるほど、raw-dataで送信しおいるようですので、xhrの曞き方は参考になるかもしれたせん。

ファむルを぀萜ずしおからアップロヌドするず、
リク゚ストが぀発生しおいたずいうのは、予想通りでした。
それをリク゚スト぀で送信したいんですけどね。。。(^^;


cometずweb-socketの違いは、ちょっず調べただけですが、、、
cometは「受信甚xhr、送信甚xhrの぀」、
web-socketは「双方向の通信が぀」ずいう違いだけらしいですし、
リク゚ストの数は枛らした方が良いず思うので。

ああ、でも、䜕十個も送信するずきは、リク゚スト数を぀皋床に増やしお、
同時にアップロヌドさせた方が早くなるのかな。。。
でもリク゚ストを増やせばサヌバヌの負荷が、、、(- -)


> http://demos.hacks.mozilla.org/openweb/uploadingFiles/main.js
> ドロップ時
> var img = document.createElement("img");
> img.classList.add("obj");
> img.file=file;

> アップロヌド時
> reader.onloadend = (function(aImg) { return function(e) { new FileUpload(aImg, e.target.result); }; })(imgs[i]);
> reader.readAsBinaryString(imgs[i].file);

ずあったので、
ドロップのタむミングず違うタむミングでfileを取埗するためには、
管理甚の倉数を぀甚意しようかず思ったんですが、
やっぱり゚レメントの属性に突っ蟌んで、゚レメントで管理した方が簡単そうですね。


ドロップしたらすぐにアップロヌド、ずいうよりは、
最初から、ドロップで衚瀺、アップロヌドボタンでアップロヌド、ず、
段階にした方が䜜りやすかったかもしれたせんし、参考にしやすかったでしょうか。


> Safari 4では実装されおいなかったず思いたすよ。
> 珟状はFirefox 3.6+だけだったかず。
なるほど。
でもたあ、ずりあえずFileAPIやHTML5が正匏になっお、いろんなブラりザがサポヌトしおくれないず
䞀般的に䜿っお貰うずいうのは無理ですから。(^^;
そもそも䜿う人がいるのか、ず蚀う問題は(・)眮いずいお(・)。
しばらくは<iframe>を䜿った非同期アップロヌドを利甚したす。

KOMATSU Kensaku

未读
2010幎3月1日 20:14:432010/3/1
收件人 html5-dev...@googlegroups.com
小束です。

アップロヌド利甚であれば、普通にxhr + postを䜿われた方が良いように思いたす。
珟状のapiだず、UTF-8゚ンコヌドのストリングしか送れたせんし。

websocketのpipeline凊理で䞀本のストリヌムにたずめられるずいうメリットはありたすが、
ファむルサむズが倧きくなるず、tcp window sizeの制限TCPのACK埅ちで
速床が出ないのほうが効いおきたすので、速床を考えるのであれば、
耇数コネクションを利甚された方がベタヌだず思いたす。pipelineである皋床
たずめるのは"あり"かもしれたせん

2010幎3月1日1:08 Wataru Kanzaki <goo...@wi-wi.jp>:

Atsushi Shimono

未读
2010幎4月5日 11:52:362010/4/5
收件人 html5-dev...@googlegroups.com
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

 shimonoです

# 今床はmozillaな垜子で。。いろいろ反応遅くおすみたせん m__m

(2010/02/28 17:15), Futomi Hatano wrote:
>> XMLHttpRequest2が実装されおないようなので、
>> バむナリデヌタのたた送信するず、
>> Firefoxの堎合は、null文字のずころで送信デヌタが途切れるようです。
>>
>> で、バむナリデヌタからテキストデヌタぞの倉換はescape()にしたした。
>> バむナリデヌタに察しおencodeURIComponentを䜿うず、
>> デヌタが砎壊されるようです。
>
> こちらも参考になるず思いたすよ。
> http://hacks.mozilla.org/2009/12/uploading-files-with-xmlhttprequest/
> もしすでにご存じでしたら、すみたせん。

 hacks.mozilla.org にいいコンテンツがたくさんあるのに日本語版をどこかでやったり
集めたりしないのかずいうコメントをいろいろいただいおいたり、、そもそもこのサむ
トはFirefox 3.5のリリヌスのずきの35days projectから始たったサむトで、その䞭囜語版
もあるのに日本語版はずいうコメントを(宎䌚などで)いろいろいただいおおりたした。。

 で、さすがに次々にポストされおくるのを党郚やるのは厳しい(の前に最近掻動停滞しお
るよねずいうのもありたすが)ずいうこずで、ずりあえず堎所は䜜りたしたこら

https://dev.mozilla.jp/hacksmozillaorg/ - hacks.mozilla.org @ Mozilla Developer Street (modest)

 すでにblogずかで翻蚳されおいる方のポストぞのリンクの远加や、いっちょやっおみる
かずいう気のある方はぜひお願いいたしたす m__m
# mozilla.org ずの翻蚳蚱可などの凊理はちゃんずやっおおりたすのでご安心ください。


 ではでは

ps.
 あず、mozilla関係に軞を眮いおたすが、りェブ暙準も含んだ"アナりンスリスト"ã‚’é–‹èš­
しおたす。リストの詳现は https://ssl.jpmoz.net/mailman/listinfo/news-info をご芧く
ださい。なお、運甚の詳现に぀いおは http://mozwiki.jpmoz.net/info/news-info をご参
照ください。関係しそうなポストをお埅ちしおおりたす m__m
# 泚: SSL蚌明曞がただきちんずしおいたせんので、その点はご了承ください。
 気になる方は蚌明曞SHA1フィンガヌプリント(例)をご確認ください。
C0:9A:CD:0B:32:4B:17:3E:0A:33:41:E5:A4:0D:CC:C5:C4:7B:FD:17
- --
Atsushi Shimono - shi...@bug-ja.org
Mozilla Evangelist
Bugzilla Localization WG member; Bugzilla Users Group in Japan
skype:shimono_univ; http://blog.himor.in/; http://facebook.com/himorin
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (MingW32)

iQIcBAEBCgAGBQJLugdDAAoJEHI5evwJBSZdqs4P/RtQ5mNFM0D0ouOLolmDZNX9
itIVgHMAcacf5UdqiHw7AxCEoD3UUJNmvaDqbBRVQCzS6Rc5Fx57t8ywJ8emFm/b
6v9K732B+/tLo/UmNeF3NZrM7ZQ/jt+yPIuv0PGGcwuWldQY3Dl0UGojjIcd1kD2
s/7FixXjyntN1/OFIZOSp9h82rb+GUuiP2N4N3THwmvo5JOXRQ67mP2YLRoY889F
zC0irtaSc3vshNl+7xjkg/tCMu9Kb8ibtAy7bv90HboZxthPsNJlaJWafzyOl4pt
YTdsvvPyP5JB/2ma4jDzS8sgP5lvpyM1bIJ9SGQXSanTECNJWnHAGHwVE3atr3c8
QdF48b1VD2NOpjFE98zSNgPLl6fLpG5CZj8WNmvageblFLXMFE+7GCbp/qieaPTH
PjiucYUl8hnTX4k6t8+ZqJaTTDmXxQvvnShN0e/GAC81y3z+ev4kHkMMvFd6MifS
lcVhX4eURswmp5FI+2kB6eXNO5L9UtSQgdvsr9yzmIwvM1vj59QD6JcBrpUrvTQS
/VW2b19CxqNliupIC01FCHhyGRHr8nwdsmhty9/lyYhx+yiwlO3tDQ8eLYhzgHFl
Q6L6YnPkny2eqAnA25E/VUbTRFG7d0CMR67z+aFkUVo0dci9hV3iBT4w65PzHrP3
gp+D6aLWs+6WiKEdkVYm
=YXls
-----END PGP SIGNATURE-----

回倍党郚
回倍䜜者
蜬发
0 䞪新垖子