Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将图像URL转换为base64_Javascript_Angularjs_Base64 - Fatal编程技术网

Javascript 将图像URL转换为base64

Javascript 将图像URL转换为base64,javascript,angularjs,base64,Javascript,Angularjs,Base64,我从Facebook graph API中提取了一张照片,我正试图将其上传到我的数据库中,但我必须首先将其转换为base 64。我如何在angularJS或Javascript中实现这一点。我试着用图书馆,但没用 $scope.prof_pic_link = $base64.encode(data.picture.data.url); $scope.prof_pic_link = encodeURIComponent($scope.prof_pic_link); 我使用了以下函数对

我从Facebook graph API中提取了一张照片,我正试图将其上传到我的数据库中,但我必须首先将其转换为base 64。我如何在angularJS或Javascript中实现这一点。我试着用图书馆,但没用

   $scope.prof_pic_link = $base64.encode(data.picture.data.url);
   $scope.prof_pic_link = encodeURIComponent($scope.prof_pic_link);

我使用了以下函数对二进制数据进行编码:

var base64_encode = function (data) {
    //  discuss at: http://phpjs.org/functions/base64_encode/
    // original by: Tyler Akins (http://rumkin.com)
    // improved by: Bayron Guevara
    // improved by: Thunder.m
    // improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // improved by: Rafał Kukawski (http://kukawski.pl)
    // bugfixed by: Pellentesque Malesuada
    //   example 1: base64_encode('Kevin van Zonneveld');
    //   returns 1: 'S2V2aW4gdmFuIFpvbm5ldmVsZA=='
    //   example 2: base64_encode('a');
    //   returns 2: 'YQ=='

    var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
    var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,
      ac = 0,
      enc = '',
      tmp_arr = [];

    if (!data) {
        return data;
    }

    do { // pack three octets into four hexets
        o1 = data.charCodeAt(i++);
        o2 = data.charCodeAt(i++);
        o3 = data.charCodeAt(i++);

        bits = o1 << 16 | o2 << 8 | o3;

        h1 = bits >> 18 & 0x3f;
        h2 = bits >> 12 & 0x3f;
        h3 = bits >> 6 & 0x3f;
        h4 = bits & 0x3f;

        // use hexets to index into b64, and append result to encoded string
        tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
    } while (i < data.length);

    enc = tmp_arr.join('');

    var r = data.length % 3;

    return (r ? enc.slice(0, r - 3) : enc) + '==='.slice(r || 3);
}
var base64\u encode=函数(数据){
//讨论地点:http://phpjs.org/functions/base64_encode/
//原创:泰勒·艾金斯(http://rumkin.com)
//改进者:贝隆·格瓦拉
//改进者:Thunder.m
//改进者:凯文·范·佐内维尔德(http://kevin.vanzonneveld.net)
//改进者:凯文·范·佐内维尔德(http://kevin.vanzonneveld.net)
//改进者:拉法库卡夫斯基(http://kukawski.pl)
//修正者:佩伦茨克·马莱苏亚达
//示例1:base64_编码(“Kevin van Zonneveld”);
//返回1:'S2V2aW4gdmFuIFpvbm5ldmVsZA=='
//示例2:base64_编码('a');
//返回2:'YQ=='
变量b64='ABCDEFGHIJKLMNOPQRSTUVXYZABCDFGHIJKLMNOPQRSTUVXYZ0123456789+/=';
var o1,o2,o3,h1,h2,h3,h4,位,i=0,
ac=0,
附件=“”,
tmp_arr=[];
如果(!数据){
返回数据;
}
把三个八位组分成四个六位组
o1=data.charCodeAt(i++);
o2=data.charCodeAt(i++);
o3=data.charCodeAt(i++);
位=o18&0x3f;
h2=位>>12&0x3f;
h3=位>>6&0x3f;
h4=位&0x3f;
//使用hexets索引到b64中,并将结果附加到编码字符串中
tmp_arr[ac++]=b64.charAt(h1)+b64.charAt(h2)+b64.charAt(h3)+b64.charAt(h4);
}而(i