我需要获取 base64 图像文件。
我所得到的就是这样的文件的本地文件路径:C:\APPL\scans\IMG555.jpg
我尝试了这段代码,但是似乎没有用。
var name = 'IMG555.jpg';
var path = '`C:\APPL\scans\';
export const fileToBase64 = (filename, filepath) => {
return new Promise(resolve => {
var file = new File([filename], filepath);
var reader = new FileReader();
// Read file content on file loaded event
reader.onload = function(event) {
resolve(event.target.result);
};
// Convert data to base64
reader.readAsDataURL(file);
});
};
fileToBase64(name , path).then(result = {
console.log(result);
});
我只得到base64的一部分(小长度)。因此,它不是有效的图像文件。
有人有更好的方法吗?
答案 0 :(得分:0)
在浏览器环境中,出于安全原因,您不能仅从磁盘读取任何文件。用户必须明确选择文件,例如使用<input type="file" />
。
这是一个简单的示例,它在textarea
中显示所选文件的base64表示形式。您不需要jQuery即可。
function showBase64Representation() {
var output = document.querySelector('textarea');
var file = document.querySelector('input[type=file]').files[0];
var reader = new FileReader();
reader.addEventListener("load", function () {
output.value = reader.result;
}, false);
if (file) {
reader.readAsDataURL(file);
}
}
<input type="file" onchange="showBase64Representation()"><br>
<textarea rows="10" cols="50"></textarea>