base64
by willystyle
HTML
<input type="file" id="file-input" class="scf-link" accept=".txt">
<button id="convert-button">Convert</button>
JavaScript
const fileElement = document.getElementById('file-input');
const convertButton = document.getElementById('convert-button');
convertButton.addEventListener('click', (ev) => {
const file = fileElement.files[0];
if (file) {
const filename = file.name;
const [name, ext] = filename.split('.');
const newFilename = `${name}_base64.${ext}`;
const aReader = new FileReader();
aReader.readAsText(file, 'UTF-8');
aReader.onload = function (evt) {
fileElement.innerHTML = evt.target.result;
const fileContent = aReader.result;
// console.log('text: ', fileContent);
const encoded = btoa(unescape(encodeURIComponent(fileContent)));
// console.log('encoded: ', encoded);
const blob = new Blob([encoded], { type: 'text/plain;charset=utf-8;' });
const URL = window.URL || window.webkitURL;
const downloadUrl = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = downloadUrl;
a.download = newFilename;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
};
aReader.onerror = function (evt) {
fileElement.innerHTML = 'error';
console.log('error');
};
} else {
alert('Please select file to convert.')
}
});