为了账号安全,请及时绑定邮箱和手机立即绑定

图像转换为Base64

图像转换为Base64

慕虎7371278 2019-11-23 13:25:45
<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)任何帮助表示感谢。
查看完整描述

3 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞

在这种情况下,使用Deferred Object并返回promise 是很有用的:


function readImage(inputElement) {

    var deferred = $.Deferred();


    var files = inputElement.get(0).files;

    if (files && files[0]) {

        var fr= new FileReader();

        fr.onload = function(e) {

            deferred.resolve(e.target.result);

        };

        fr.readAsDataURL( files[0] );

    } else {

        deferred.resolve(undefined);

    }


    return deferred.promise();

}

以上功能可以通过这种方式使用:


var inputElement = $("input[name=file]");

readImage(inputElement).done(function(base64Data){

    alert(base64Data);

});

或您的情况:


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

  readImage($(this)).done(function(base64Data){ alert(base64Data); });

});


查看完整回答
反对 回复 2019-11-23
  • 3 回答
  • 0 关注
  • 690 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信