readAsDataURL メソッドは、指定された Blob ないし File オブジェクトを読み込むために使用します。読込処理が終了すると readyState は DONE に変わり、 loadend イベントが生じます。それと同時に result プロパティにはファイルのデータを表す、base64 エンコーディングされた data: URL の文字列が格納されます。
構文
instanceOfFileReader.readAsDataURL(blob);
パラメータ
例
HTML
<input type="file" onchange="previewFile()"><br> <img src="" height="200" alt="Image preview...">
JavaScript
function previewFile() {
var preview = document.querySelector('img');
var file = document.querySelector('input[type=file]').files[0];
var reader = new FileReader();
reader.onloadend = function () {
preview.src = reader.result;
}
if (file) {
reader.readAsDataURL(file);
} else {
preview.src = "";
}
}
実行結果
注釈: Internet Explorer 10 以前では
FileReader() コンストラクタがサポートされていません。十分な互換性が必要とされるときは crossbrowser possible solution for image preview または this more powerful example を参照してください。仕様
| Specification | Status | Comment |
|---|---|---|
| File API The definition of 'FileReader' in that specification. |
Working Draft | Initial definition. |
ブラウザ実装状況
| Feature | Firefox (Gecko) | Chrome | Internet Explorer* | Opera* | Safari |
|---|---|---|---|---|---|
| Basic support | 3.6 (1.9.2) | 7 | 10 | 12.02 | 6.0.2 |
| Feature | Firefox Mobile (Gecko) | Android | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|
| Basic support | 32 | 3 | 10 | 11.5 | 6.1 |
Implementation notes
- IE9 has a File API Lab.
- Opera has partial support in 11.1.
Gecko-specific notes
- Prior to Gecko 2.0 beta 7 (Firefox 4.0 beta 7), all
Blobparameters below wereFileparameters; this has since been updated to match the specification correctly. - Prior to Gecko 13.0 (Firefox 13.0 / Thunderbird 13.0 / SeaMonkey 2.10) the
FileReader.errorproperty returned aFileErrorobject. This interface has been removed andFileReader.erroris now returning theDOMErrorobject as defined in the latest FileAPI draft.