feat: html but not works

This commit is contained in:
2022-07-04 00:08:41 +08:00
parent 46783e8398
commit 89ce27b02f
2 changed files with 58 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
<html>
<head>
<title>Wasm QR Test</title>
</head>
<body>
<div style="border: dashed 2px;border-color:gray;height:50px;padding:20px 10px;margin:10px;" id="sfile">
Drop file(s) here
</div>
<script type="module" src="index.js"></script>
</body>
</html>

View File

@@ -0,0 +1,47 @@
import { instantiate } from "./lib/rs_lib.generated.js";
const { decode_qr } = await instantiate();
function handleDragOver(evt) {
evt.stopPropagation && evt.stopPropagation();
evt.preventDefault && evt.preventDefault();
evt.dataTransfer.dropEffect = 'copy';
}
function handleFileSelect(evt) {
evt.stopPropagation && evt.stopPropagation();
evt.preventDefault && evt.preventDefault();
var files = evt.target.files || evt.dataTransfer.files;
if (files.length > 1) {
alert("Too many files!");
return;
}
var f = files[0];
if (f.size > 20 * 1024 * 1024) {
alert("File: " + f.name + " too large: " + f.size);
return;
}
console.info("N: " + f.name);
console.info("T: " + f.type);
console.info("S: " + f.size);
console.info("M: " + f.lastModifiedDate);
var reader = new FileReader();
reader.onloadend = function(evt) {
// console.info(evt);
if (evt.target.readyState == FileReader.DONE) {
let bs = evt.target.result;
// debugger;
console.log(typeof bs);
console.log(bs);
let qr_result = decode_qr(bs);
console.log(qr_result);
}
};
var blob = f.slice(0, f.size);
// console.info("B: " + blob);
reader.readAsArrayBuffer(blob);
}
var sfile = document.getElementById("sfile");
sfile.addEventListener("dragover", handleDragOver, false);
sfile.addEventListener("drop", handleFileSelect, false);