feat: html but not works
This commit is contained in:
11
__wasm/deno_rust_wasm_qr_decode/index.htm
Normal file
11
__wasm/deno_rust_wasm_qr_decode/index.htm
Normal 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>
|
||||||
47
__wasm/deno_rust_wasm_qr_decode/index.js
Normal file
47
__wasm/deno_rust_wasm_qr_decode/index.js
Normal 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);
|
||||||
Reference in New Issue
Block a user