var dirSelect = document.getElementById("dir");
function getDir() {
return dirSelect.value ? parseInt(dir.value) : null;
}
function arrayBufferToBase64(buffer, callback) {
var blob = new Blob([buffer], {
type: "application/octet-binary",
});
var reader = new FileReader();
reader.onload = function (evt) {
var dataurl = evt.target.result;
callback(dataurl.substr(dataurl.indexOf(",") + 1));
};
reader.readAsDataURL(blob);
}
var pathInput = document.getElementById("path-to-read");
addClickEnterHandler(document.getElementById("read"), pathInput, function () {
var pathToRead = pathInput.value;
var isFile = pathToRead.match(/\S+\.\S+$/g);
var opts = {
dir: getDir(),
};
var promise = isFile
? window.__TAURI__.fs.readBinaryFile(pathToRead, opts)
: window.__TAURI__.fs.readDir(pathToRead, opts);
promise
.then(function (response) {
if (isFile) {
if (pathToRead.includes(".png") || pathToRead.includes(".jpg")) {
arrayBufferToBase64(new Uint8Array(response), function (base64) {
var src = "data:image/png;base64," + base64;
registerResponse('
');
});
} else {
var value = String.fromCharCode.apply(null, response);
registerResponse(
''
);
var fileInput = document.getElementById("file-response");
fileInput.value = value;
document
.getElementById("file-save")
.addEventListener("click", function () {
window.__TAURI__.fs
.writeFile(
{
file: pathToRead,
contents: fileInput.value,
},
{
dir: getDir(),
}
)
.catch(registerResponse);
});
}
} else {
registerResponse(response);
}
})
.catch(registerResponse);
});