file loader helper in vanilla JS.
install vis npm:
npm install --save ldfile
include required js file:
<script src="path-to-ldfile/index.js"></script>
then:
var ldf = new ldfile(config);
ldf.on("load", function(ret) {
for(i=0;i<ret.length;i++) {
console.log(
ret[i].result, # file content
ret[i].file # file object
);
}
});
root
: HTMLElement or CSS Selector for the input element.type
: one of <[dataurl text binary arraybuffer blob bloburl]>. default binary.ldcv
: ldcover for choosing encoding for text type. fallback to browser prompt if omitted.
on
: add event listener. Possible events:load
: fired when input value changed, along with a list of objects with following members:file
: the file object provided by browser.result
: file content parsed by ldfile.
fromURL(url, type, encoding)
- load file by URL. return promise resolving to {result, file} object.- params:
type
: the same as the type in ldfile object configuration.encoding
: default utf-8 and only applicable when type is text.
- returns a Promise resolving with an object with following fields:
result
: parsed content based on giventype
.file
: corresponding file object
- this function can be used to load file from Data URLs.
- params:
fromFile(file, type, encoding)
- load File object- same with
fromURL
except that the first param (file) is a File object.
- same with
download(opt)
- download file based onopt
, which contains:href
: url for the file to download. eitherhref
orblob
should be given.blob
: file to download. ignored ifhref
is providedmime
: file format. ( e.g., "application/pdf" )name
: saved filename
ldfile uses following HTML5 features, which may not be supported by all browsers:
- File Reader ( IE <= 9; read as binary needs polyfill for IE <= 11 )
- Promise ( IE <= 11, some mobile browsers )
Please use Polyfills to support legacy browsers if necessary.
MIT