# j-FileReader

> j-FileReader: Singleton; einfache Bedienung

Framework: jcomponent20
Product: jComponent 20 (jcomponent@20)
Language: de
Content-SHA256: 6b79cf774aebe61594e85b5e1ead35e48c010cac0a6bca60a148110f592259c2
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: components@910ed1a86f6e72b4f031d3ad0dc7844f9fc5cb8e
Review: not-recorded

- Singleton
- nur für Textdateien

__Methoden__:
- `component.open(opt)` – öffnet den Dateibrowser
	- `opt.multiple {Boolean}` ermöglicht mehrere Dateien (Standard: `false`)
	- `opt.accept {String}` erlaubt nur den angegebenen Inhaltstyp (Standard: `undefined`)
	- `opt.base64 {Boolean}` liest eine Datei in Base64-Kodierung (Standard: `false`)
	- __NEU__: `opt.files {HTTP Files}` liest Dateien z.B. per Drag & Drop
	- `opt.callback {Function(file)}` ein Rückruf
	- __NEU__: `opt.progress {Function(percentage, file)}` optional

```js
var opt = {};
opt.accept = 'text/*';
// opt.files = e.files;
opt.callback = function(file) {
	console.log(file);
};
SETTER('filereader/open', opt);
```

Verwenden Sie es mit `<ui-component name="filereader">`. Wenn die Komponente noch nicht geladen ist, lädt jComponent sie bei der ersten Verwendung von der Adresse in `DEF.fallback` herunter (standardmäßig das CDN Componentator). Autor: Peter Širka. Quelle: Componentator-Komponenten-Repository, MIT-Lizenz.

```html example.html
<ui-component name="filereader"></ui-component>
<a href="javascript:fopen()">OPEN FILE</a>

<script>
	function fopen() {
		var opt = {};
		opt.accept = 'text/*';
		opt.callback = function(file) {
			$(document.body).append('<div><pre><code>{0}</code></pre></div>'.format(JSON.stringify(file, null, '    ').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;')));
		};
		SETTER('filereader/open', opt);
	}
</script>
```
