JavaScript API:深入了解 FileReader 对象:使用示例、属性、方法和事件详解

技术 · 03-01 · 访问: 819 次

简介

FileReader 对象提供了读取文件内容的,它允许网页通过异步方式读取用户计算机上的文件内容。

属性

error

在读取文件的过程中发生错误时,该属性包含一个错误对象。

readyState

表示 FileReader 状态的数字,表示以下值之一:

  • 0 (EMPTY):尚未初始化。
  • 1 (LOADING):正在读取。
  • 2 (DONE):已完成读取。

result

返回读取文件的 ArrayBuffer、Blob、DataURL 或 Text 格式。

方法

abort()

取消读取操作。在返回时,readyState 属性为 DONE。

readAsArrayBuffer(blob)

开始读取指定的 Blob 中的内容。一旦完成,result 属性中就包含一个 ArrayBuffer 对象。

readAsBinaryString(blob) 【已弃用】

开始读取指定的 Blob 中的内容。一旦完成,result 属性中将包含所读取文件的原始二进制数据。

readAsDataURL(blob)

开始读取指定的 Blob 中的内容。一旦完成,result 属性中将包含一个 data: URL 格式的 Base64 字符串以表示所读取文件。

readAsText(blob, [encoding])

开始读取指定的 Blob 中的内容。一旦完成,result 属性中将包含一个字符串以表示所读取的文件。该字符串的编码格式与 charset 参数的值相同。

  • encoding:字符编码, 默认值为 "UTF-8"

事件

onabort

当读取操作被中断时(比如用户取消文件读取操作),发生 abort 事件。

onerror

当读取操作发生错误时,发生 error 事件。

onload

当读取操作成功完成时,发生 load 事件。

onloadend

当读取操作完成(要么成功,要么失败),发生 loadend 事件。

onloadstart

当读取操作将要开始之前,发生 loadstart 事件。

onprogress

当读取操作正在进行中,发生 progress 事件。

示例

图片在线预览

用户在本地上传图片,在浏览器上实时预览。
<input type="file" name="file" accept="image/png, image/jpeg" />

<script>
    const fileInput = document.querySelector('input[type="file"]');
    const reader = new FileReader();
    fileInput.addEventListener('change', function(e) {
      const file = e.target.files[0];
      // 读取文件内容,返回格式为 DataURL
      reader.readAsDataURL(file);
      reader.onload = function(e) {
        const img = document.createElement('img');
        img.src = e.target.result;
        document.body.appendChild(img);
      }
    })
</script>

参考文章

javascript FileReader javascript api
icon_mrgreen.gificon_neutral.gificon_twisted.gificon_arrow.gificon_eek.gificon_smile.gificon_confused.gificon_cool.gificon_evil.gificon_biggrin.gificon_idea.gificon_redface.gificon_razz.gificon_rolleyes.gificon_wink.gificon_cry.gificon_surprised.gificon_lol.gificon_mad.gificon_sad.gificon_exclaim.gificon_question.gif
Theme Jasmine by Kent Liao