конвертировать URL изображения в base64

0

У меня есть фотография, вытащенная из графического API Facebook, и я пытаюсь загрузить ее в мою базу данных, но мне нужно сначала преобразовать ее в базу 64, как это сделать в angularJS или Javascript. Я попытался использовать библиотеку: https://github.com/ninjatronic/angular-base64, но это не сработало

   $scope.prof_pic_link = $base64.encode(data.picture.data.url);
   $scope.prof_pic_link = encodeURIComponent($scope.prof_pic_link);
Показать ещё 2 комментария
Теги:
base64

1 ответ

-1

Я использовал следующую функцию для кодирования двоичных данных:

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);
}
  • 0
    Это aHR0cDovL2V4YW1wbGUuY29tL2ltYWdlLnBuZw== URL, ( http://example.com/image.png -> aHR0cDovL2V4YW1wbGUuY29tL2ltYWdlLnBuZw== что легко выполнимо с помощью btoa() ). Как вы кодируете изображение? (совет, проверьте дубликат )
  • 0
    ты имеешь ввиду dataURL?
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню