简体   繁体   English

Javascript Base64远程文件

[英]Javascript Base64 Remote File

Is it possible to base64 encode a file with Javascript directly from a remote URL? 是否可以直接从远程URL对Java进行base64编码的文件? For example, if I wanted to base64 encode the google logo within my app from https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png with only javascript, can it be done? 例如,如果我想通过https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png仅使用javascript对我的应用程序中的google徽标进行base64编码,可以吗?

I found a viable solution using an html5 canvas and jquery - jsfiddle copied here. 我找到了使用html5 canvas和jquery的可行解决方案-jsfiddle复制到这里。 I'll probably go this route: 我可能会走这条路:

https://jsfiddle.net/bu25sosf/1/ https://jsfiddle.net/bu25sosf/1/

function convertImgToBase64(url, callback, outputFormat) {
    var img = new Image();
    img.crossOrigin = 'Anonymous';
    img.onload = function () {
        var canvas = document.createElement('CANVAS');
        var ctx = canvas.getContext('2d');
        canvas.height = this.height;
        canvas.width = this.width;
        ctx.drawImage(this, 0, 0);
        var dataURL = canvas.toDataURL(outputFormat || 'image/png');
        callback(dataURL);
        canvas = null;
    };
    img.src = url;
}


$('#img2b64').submit(function (event) {
    var imageUrl = $(this).find('input[name=url]').val();
    console.log('imageUrl', imageUrl);
    convertImgToBase64(imageUrl, function (base64Img) {
        $('.output')
            .find('textarea')
            .val(base64Img)
            .end()
            .find('a')
            .attr('href', base64Img)
            .text(base64Img)
            .end()
            .find('img')
            .attr('src', base64Img);
    });

    event.preventDefault();
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM