FileReader: readAsDataURL() method
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since иÑÐ»Ñ 2015 г..
ÐÑимеÑание: ÐÑа возможноÑÑÑ Ð´Ð¾ÑÑÑпна в Web Workers.
ÐеÑод readAsDataURL() инÑеÑÑейÑа FileReader иÑполÑзÑеÑÑÑ Ð´Ð»Ñ ÑÑÐµÐ½Ð¸Ñ ÑодеÑжимого Blob или File. ÐоÑле завеÑÑÐµÐ½Ð¸Ñ Ð¾Ð¿ÐµÑаÑии ÑвойÑÑво readyState пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð·Ð½Ð°Ñение DONE и Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°ÐµÑ ÑобÑÑие loadend. Ð Ñо же вÑÐµÐ¼Ñ Ð°ÑÑибÑÑ result бÑÐ´ÐµÑ ÑодеÑжаÑÑ Ð´Ð°Ð½Ð½Ñе Ñайла, закодиÑованнÑе в base64-ÑÑÑÐ¾ÐºÑ Ð² виде Data URL.
ÐÑимеÑание:
ÐÑÑибÑÑ result не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð½Ð°Ð¿ÑÑмÑÑ Ð´ÐµÐºÐ¾Ð´Ð¸Ñован как Base64 без пÑедваÑиÑелÑного ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð¾Ð±ÑÑÐ²Ð»ÐµÐ½Ð¸Ñ Data URL, коÑоÑое пÑедÑеÑÑвÑÐµÑ Ð´Ð°Ð½Ð½Ñм в кодиÑовке base64. ЧÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ ÑолÑко ÑÑÑÐ¾ÐºÑ Ð² кодиÑовке base64, необÑ
одимо ÑдалиÑÑ data:*/*;base64, из ÑезÑлÑÑаÑа.
СинÑакÑиÑ
readAsDataURL(blob)
ÐаÑамеÑÑÑ
ÐозвÑаÑаемое знаÑение
ÐÐµÑ (undefined).
ÐÑимеÑÑ
>ЧÑение одного Ñайла
HTML
<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);
РезÑлÑÑаÑ
СпеÑиÑикаÑии
| Specification |
|---|
| File API > # readAsDataURL > |