繁体   English   中英

使用JavaScript将Facebook个人资料图片(从Facebook API获取)保存为文件对象

[英]Saving Facebook profile picture (fetched from Facebook API) as file object using javascript

我想将facebook个人资料图像URL保存到文件对象,我试图将其转换为base64,然后将其转换为文件对象,但是我想要功能之外的文件对象,这可能是一些愚蠢的问题,但有什么帮助吗? 按照我的尝试

var imgUrl = 'https://dl.dropboxusercontent.com/s/4e90e48s5vtmfbd/aaa.png';
var convertImgToDataURLviaCanvas = function(url, callback) {
    var img = new Image();
    img.crossOrigin = 'Anonymous';
    img.onload = function() {
        var canvas = document.createElement('CANVAS');
        var ctx = canvas.getContext('2d');
        var dataURL;
        canvas.height = this.height;
        canvas.width = this.width;
        ctx.drawImage(this, 0, 0);
        dataURL = canvas.toDataURL();
        callback(dataURL);
        canvas = null;
    };
    img.src = url;
}

convertImgToDataURLviaCanvas(imgUrl, function(base64_data) {
    var byteString = atob(base64_data.split(',')[1]);
    var ab = new ArrayBuffer(byteString.length);
    var ia = new Uint8Array(ab);
    for (var i = 0; i < byteString.length; i++) {
        ia[i] = byteString.charCodeAt(i);
    }
    var blob = new Blob([ia], {
        type: 'image/jpeg'
    });
    var file = new File([blob], "images.jpg");
    console.log(file)
});

您可以使用全局变量并将文件对象分配给函数中的该变量。

基本上拆分var file = new File([blob],“ images.jpg”);

进入

var file = null; //在convertImgToDataURLviaCanvas外部

文件=新文件([blob],“ images.jpg”); //在convertImgToDataURLviaCanvas内部

暂无
暂无

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

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