图像转换为Base64

<input type="file" id="asd"/>

用户选择后,我想在base64中获取图像(提交表单之前)


就像是 :


$(input).on('change',function(){

  var data = $(this).val().base64file(); // it is not a plugin is just an example

  alert(data);

});

我了解了文件API和其他内容,我想要一个简单的跨浏览器解决方案(显然不包括IE6 / IE7)


任何帮助表示感谢。


慕虎7371278
浏览 717回答 3
3回答

慕哥9229398

在这种情况下,使用Deferred Object并返回promise 是很有用的:function readImage(inputElement) {&nbsp; &nbsp; var deferred = $.Deferred();&nbsp; &nbsp; var files = inputElement.get(0).files;&nbsp; &nbsp; if (files && files[0]) {&nbsp; &nbsp; &nbsp; &nbsp; var fr= new FileReader();&nbsp; &nbsp; &nbsp; &nbsp; fr.onload = function(e) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; deferred.resolve(e.target.result);&nbsp; &nbsp; &nbsp; &nbsp; };&nbsp; &nbsp; &nbsp; &nbsp; fr.readAsDataURL( files[0] );&nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; deferred.resolve(undefined);&nbsp; &nbsp; }&nbsp; &nbsp; return deferred.promise();}以上功能可以通过这种方式使用:var inputElement = $("input[name=file]");readImage(inputElement).done(function(base64Data){&nbsp; &nbsp; alert(base64Data);});或您的情况:$(input).on('change',function(){&nbsp; readImage($(this)).done(function(base64Data){ alert(base64Data); });});
打开App,查看更多内容
随时随地看视频慕课网APP