Baseline Widely available
夿³¨ï¼ æ¤ç¹æ§å¨ Web Worker ä¸å¯ç¨ã
FileReader
æ¥å£ç readAsDataURL()
æ¹æ³ç¨äºè¯»åæå®ç Blob
æ File
对象çå
容ãå½è¯»æä½å®ææ¶ï¼readyState
屿§å为 DONE
ï¼å¹¶è§¦å loadend
äºä»¶ãæ¤æ¶ï¼result
屿§å
å«ä½ä¸º data: URL çæ°æ®ï¼å°æä»¶çæ°æ®è¡¨ç¤ºä¸º base64 ç¼ç å符串ã
夿³¨ï¼ 妿ä¸å
å é¤ Base64 ç¼ç æ°æ®åé¢ç Data-URL 声æï¼å blob ç result
æ æ³ç´æ¥è§£ç 为 Base64ãè¦ä»
æ£ç´¢ Base64 ç¼ç çå符串ï¼è¯·é¦å
ä»ç»æä¸å é¤ data:*/*;base64,
ã
æ ï¼undefined
ï¼ã
<input type="file" onchange="previewFile()" /><br />
<img src="" height="200" alt="å¾çé¢è§" />
JavaScript
function previewFile() {
const preview = document.querySelector("img");
const file = document.querySelector("input[type=file]").files[0];
const reader = new FileReader();
reader.addEventListener(
"load",
() => {
// å°å¾åæä»¶è½¬æ¢ä¸º Base64 å符串
preview.src = reader.result;
},
false,
);
if (file) {
reader.readAsDataURL(file);
}
}
ç»æ 读åå¤ä¸ªæä»¶ HTML
<input id="browse" type="file" multiple />
<div id="preview"></div>
JavaScript
function previewFiles() {
const preview = document.querySelector("#preview");
const files = document.querySelector("input[type=file]").files;
function readAndPreview(file) {
// ç¡®ä¿ `file.name` 符åæä»¬çæä»¶æ©å±åæ å
if (/\.(jpe?g|png|gif)$/i.test(file.name)) {
const reader = new FileReader();
reader.addEventListener(
"load",
() => {
const image = new Image();
image.height = 100;
image.title = file.name;
image.src = reader.result;
preview.appendChild(image);
},
false,
);
reader.readAsDataURL(file);
}
}
if (files) {
Array.prototype.forEach.call(files, readAndPreview);
}
}
const picker = document.querySelector("#browse");
picker.addEventListener("change", previewFiles);
ç»æ è§è æµè§å¨å
¼å®¹æ§ åè§
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4