ãã¡ã¤ã«APIããã®å¾ã¡ãã£ã¨ä½¿ãæ©ä¼ããã£ããããã¤ãæ°ã¥ãããã¨ããã£ãã®ã§ã¡ã¢
The File object provides information about -- and access to the contents of -- files. These are generally retrieved from a FileList object returned as a result of a user selecting files using the input element, or from a drag and drop operation's DataTransfer object.
input type file以å¤ã§ããã¡ã¤ã«ã¯åããã
- ãã©ãã°ï¼ãããã㯠DataTransfer ãªãã¸ã§ã¯ãçµç±
- XmlHttp 㯠BlobBuilder çµç±
- data Schema 㯠Blob çµç±
ã§ãããããã¡ã¤ã«ãæ±ãã®ã«ãåããã¨ãã§ããã
input[type=file]ã¨å¾®å¦ã«æ±ããéãã¿ãããªã®ãæ°ã«ãªã£ãã
ããããã®åãåãæ¹
blob ã®å ´å㯠onload å¾ ã¡ãããªãã¨ãµã¤ãºãåããªã
ãã¨ãã°ãç»åã®ãµã¤ãºãåå¾ããã«ã¯ã
data schemeã®å ´å
main_img.src = "data:image/jpeg;base64,"+v main_img.onload = function(){ actual1 = getActualDimension( main_img ) main_img.width = actual1.width; main_img.height = actual1.height window.img_history.push(new HistoryObject(main_img.src)) }
dataTransferã®å ´å
var dt = event.dataTransfer; var file = dt.files[0]; window.img_file = file var url = window.URL.createObjectURL(file) main_img.src = url main_img.onload = function(){ actual1 = getActualDimension( main_img ) main_img.width = actual1.width; main_img.height = actual1.height }
ä¸çªã®ãã¿ã¼ãªææ³ãã£ã±ãreader
data ã®å ´åã¯ãReaderã§å¾ ã¤
var dt = event.dataTransfer; var file = dt.files[0]; var reader = new FileReader(); reader.onload = (function(img) { return function(e) { img.src = e.target.result; actual1 = getActualDimension( img ) img.width = actual1.width; img.height = actual1.height }; })(main_img); reader.readAsDataURL(file);
ãã¡ã¤ã«ããã®ã¾ã¾ãPOSTããã®ã«ã¯Ajaxã§ã¯ã¡ãã£ã¨ã³ããå± ã
Ajax㯠form-enclosed ãæ¸¡ãï¼GET弿°ã¨åçã®ãã®ããªã¯ã¨ã¹ãæ¬æã«å ¥ããï¼ã ãããåºæ¬ã¯ã§ããªããmultipart/formdataãéããã¨ã¯åºæ¥ãªãã
formdataãã¤ããã°éããã¨ãåºæ¥ã
ãã¡ãããã¡ã¤ã«ã¢ãããã¼ãï¼multipart/formdata)ãXmlHTTPã§éããã¨ãåºæ¥ã
ãããformdata ãªãã¸ã§ã¯ã
var fd = new FormData() fd.append("img",file) fd.append("geometry.x",$("#selection").get(0).offsetLeft) fd.append("geometry.y",$("#selection").get(0).offsetTop) fd.append("geometry.w",$("#selection").width() ) fd.append("geometry.h",$("#selection").height() )
jQueryãã使ãã«ã¯æ´ã«ç¹æ®
jqueryã§ã¯ãèªåçã«å¤æ°å±éãããã®ã§ãããããªãã«ããå¿ è¦ããããã¤ã¾ã
formdata 㯠processdata 㨠contenttypeãfalseå¿ é
ã³ã¼ãã§ããã¨ããã
$.ajax({ type:"post", url:"./test", data:fd,//formdataã®ãªãã¸ã§ã¯ã contentType: false, processData: false }).done(function( msg ) { console.log( "Data Saved: " + msg ); });
ã®ããã«ãäºåå¦çããªãã«ããªãã¨ãjQueryã®Ajaxã§ãã¡ã¤ã«ãã¢ãããã¼ããããã¨ã¯åºæ¥ãªãã
ã¨ããããã2012-08-5ç¾å¨ã®ä»æ§ã ã£ãã
ãã®ã¸ãã¯ã©ãã©ãå¤ããã®ã§ãæ£ç´è¨ãã°ããå°ãå®å®ãã¦ãã使ãããã
ã¡ãªã¿ã«å®é¨ç°å¢ã¯Chrome(Webkit)
iOS6ãããã¡ã¤ã«ãã¢ãããã¼ããå¯è½ã«ãªãã®ã§ããã®ã¸ãã¯ã©ãã©ã使ããã¦ããã£ã¨è¯ãããæ¹ãåºã¦ãã¦ãããã¨å©ãããã¨ãã«jQueryå¨ãã¯ããã¡ãã£ã¨æ¹åãããã¨å¬ãããjQuery.Ajax.fileuploadçãªãã®ã欲ããã§ãã