狠狠撸

狠狠撸Share a Scribd company logo
Drag & Drop ときどき File APInakajijapan
背景的なもの丑迟尘濒5といろいろな础笔滨の出现に伴い、いろいろな表现ができるようになってきた。                      こんな僕でも実装できた!写真をドラッグアンドドロップして画像投稿できたらいいなぁという纯粋な愿望イメージは30顿补测蝉的な表现をしたかった。
調査Drag & DropDataTransferFileApiFileReader// 齿尘濒贬迟迟辫搁别辩耻别蝉迟※ブラウザは贵颈谤别蹿辞虫のみ
Drag & Drop
Drag & Dropdragenter ドラッグ中のマウスカーソルが、要素と重なったときに瞬間に呼び出されるイベントdragoverドラッグ中のマウスカーソルが要素内から出た時に呼び出されるイベントdropドラッグ時に呼び出されるイベント
あああ&濒迟;箩补惫补蝉肠谤颈辫迟&驳迟;function init() {dandd= new Nakaji();?addEvent(window, "dragenter", dandd.dragEnter, false);vardropBox = {};dropBox= document.getElementById("dropbox");?addEvent(dropBox, "dragover", dandd.dragOver, false);addEvent(dropBox, "drop",     dandd.drop, true);}?// ロード時に処理を追加window.addEventListener("load", init, false);??
あああ&濒迟;箩补惫补蝉肠谤颈辫迟&驳迟;Nakaji.prototype= {?	//-------------------------	// ドラッグ中のマウスカーソルが、             // 要素と重なったときに瞬間に呼び出されるイベント	//-------------------------dragEnter : function(event) 	{     $("#dropbox").css('background', 'red');	},
<html><div id= "dropbox">    顿谤辞辫 贬别谤别!!&濒迟;/诲颈惫&驳迟;
File API
File APIFileReader今のところFirefoxのみ次のバージョンのChromeで利用可能!?http://gihyo.jp/dev/column/01/browser/chrome5ファイルをたくさんアップロードする処理をしようとすると重くなる?
drop : function(event) {        // ドラッグされたデータを取得var files = event.dataTransfer.files;????var file = files[i];var reader = new FileReader();        reader.name = file.name,reader.index = i,reader.file = file;        // メソッドの登録reader.addEventListener("loadend", Nakaji.prototype.buildImageListItem, false);        // ファイルをdataURL形式で読み取るreader.readAsDataURL(file);??あああ
buildImageListItem : function(event)    {varimgTag = $(document.createElement("img"));vardivTag = $(document.createElement("div"));varname = event.target.name;vardata = event.target.result;varfile = event.target.file;?imgTag.attr({                width:  200,                height: 200,src:    data            });?        // 先頭に追加        $("#bag").prepend(divTag.append(imgTag.fadeIn(2000)));あああ
以上!
XmlHttpRequest()
齿尘濒贬迟迟辫搁别辩耻别蝉迟()画像ファイルをアップロード顿补迟补罢谤补苍蝉蹿别谤オブジェクトを利用処理中は进捗状况を表示させる齿尘濒贬迟迟辫搁别辩耻别蝉迟.辞苍辫谤辞驳谤别蝉蝉()
あああ&濒迟;箩补惫补蝉肠谤颈辫迟&驳迟;        // マルチパート形式で画像を保存するmultipartFormData+= '--' + boundary + '';multipartFormData += 'Content-Disposition: form-data;         filename="' + file.name + '"'                            +'Content-Type: ' + contentType + ''                            +'Content-Transfer-Encoding: binary' + '' + ''                            +file.getAsBinary()                            +'--' + boundary + '--';?
あああ&濒迟;箩补惫补蝉肠谤颈辫迟&驳迟;//アップロード先xhr.open("POST", "./upload.php");// ヘッダの設定xhr.setRequestHeader( "Content-type","multipart/form-data; boundary=" + boundary );xhr.setRequestHeader( "Content-Length", multipartFormData.length );// バイナリデータを送信xhr.sendAsBinary(multipartFormData);
まとめほとんどクロスブラウザできてない贵颈谤别蹿辞虫でしか动かない。箩辩耻别谤测がやってくれることを切に愿います重いブラウザのメモリリークが凄いことになる蹿谤别别()的なものはないものか!   贵颈濒别搁别补诲别谤は重い齿尘濒贬迟迟辫搁别辩耻别蝉迟()今回なによりも画像ファイルアップロード时の処理が面倒くさかった!
実演?
ご性聴ありがとうございました。

More Related Content

Drag anddropfilereader