function getBase64 (file,callback) {
const reader = new FileReader();
reader.addEventListener('load', () => callback(reader.result));
reader.readAsDataURL(file);
}
用法前 - : -
getBase64(fileObjectFromInput, function(base64Data){
console.log("base 64 of file is",base64Data);//here you can have your code which uses base64 for its operation,//file to base64 by oneshubh
});
151
好吧,如果您使用的是dojo,它为我们提供了直接编码或解码为base64的方法 .
试试这个:
使用dojox.encoding.base64编码字节数组:
var str = dojox.encoding.base64.encode(myByteArray);
10 回答
您可以使用HTML5
<canvas>
:创建一个画布,将图像加载到其中,然后使用toDataURL()获取base64表示(实际上,它是一个
data:
URL,但它包含base64编码的图像) .基本上,如果你的形象是
然后你就可以转换它了
您可以选择多种方法:
1.方法:FileReader
通过XMLHttpRequest将图像加载为blob并使用FileReader API将其转换为dataURL:
此代码示例也可以使用WHATWG _558167实现:
These approaches:
缺乏浏览器支持
有更好的压缩
也适用于其他文件类型
Browser Support:
http://caniuse.com/#feat=filereader
http://caniuse.com/#feat=fetch
2.方法:画布
将图像加载到Image-Object中,将其绘制到非污染画布并将画布转换回dataURL .
in detail
Supported input formats:
image/png
,image/jpeg
,image/jpg
,image/gif
,image/bmp
,image/tiff
,image/x-icon
,image/svg+xml
,image/webp
,image/xxx
Supported output formats:
image/png
,image/jpeg
,image/webp
(铬)Browser Support:
http://caniuse.com/#feat=canvas
3.方法:来自本地文件系统的图像
如果要从用户文件系统转换图像,则需要采用不同的方法 . 使用FileReader API:
这就是我做的
以下是您如何使用它
您可以使用FileAPI,但它几乎不受支持 .
如果你有一个文件对象,这个简单的函数将起作用:
用法前 - : -
好吧,如果您使用的是dojo,它为我们提供了直接编码或解码为base64的方法 .
试试这个:
使用dojox.encoding.base64编码字节数组:
要解码base64编码的字符串:
据我所知,图像可以通过FileReader()转换为base64字符串,或者将其存储在canvas元素中,然后使用toDataURL()来获取图像 . 我有类似的问题你可以参考这个 .
Convert an image to canvas that is already loaded
此代码段可以将您的字符串,图像甚至视频文件转换为base64字符串数据 . 尝试一次......
试试这段代码
文件上传Chnage事件ccall此功能
将base64data存储在隐藏文件中以供使用 .