кодировать изображение веб-URL в base64 в JS - PullRequest
0 голосов
/ 07 сентября 2018

Я пытаюсь загрузить zip-файл со страницы html на ПК hdd, но пока не получилось сохранить изображение, оно должно быть закодировано в base64, как можно подумать, если это изображение веб-ссылки.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

    </script>
<img id = "myImage" src="http://files.smashingmagazine.com/wallpapers/feb-18/love-work/cal/feb-18-love-work-cal-320x480.png">
<input type = 'button' onclick="func()" value = "press me">
<script >
    function getBase64Image(img){
        var canvas = document.createElement("canvas");
        canvas.width = img.width;
        canvas.height = img.height;
        var ctx = canvas.getContext("2d");
        ctx.drawImage(img,0,0);
        var dataUrl = canvas.toDataURL("image/png");
        return dataUrl.replace(/^data:image\/(png|jpg);base64,/,"")
    }





    function func() {


var image = document.querySelector("#myImage");
var base64 = getBase64Image(image);

alert(base64);


}
</script>
</body>
</html>

1 Ответ

0 голосов
/ 07 сентября 2018

Я думаю, что вы можете сделать это, используя объект httprequest для загрузки файла.

var req = new XMLHttpRequest();
req.withCredentials = true;
req.open("GET", sFileUrl, false); // 'false': synchronous.
req.send(null);
//return req.response;

если вам нужно base64, вы можете преобразовать байтовый массив в base64.

var u8 = new Uint8Array(req.response);
var b64encoded = btoa(String.fromCharCode.apply(null, u8));
return b64encoded;

убедитесь, что вы можете получить доступ к изображению URL. Надеюсь, это поможет.

...