hw 13 answers - garevna/js-course GitHub Wiki

:two:

var addElem = tagName => document.body.appendChild (
    document.createElement ( tagName )
)

var selector = addElem ( 'input' )

selector.type = 'file'
selector.multiple = true
selector.id = 'selectImages'
selector.style.display = 'none'

var label = addElem ( 'label' )

label.htmlFor = 'selectImages'
label.innerText = 'Select images'

var testFile = file => new Promise (
    ( resolve, reject ) => {
        if ( file.type.indexOf ( "image/" ) < 0 ) {
            reject ( `файл ${file.name} не является изображением` )
            return
        }
        var fileReader = new FileReader ()
        fileReader.readAsDataURL ( file )
        fileReader.onload = event =>
            resolve ( event.target.result )
        fileReader.onerror = event =>
            reject ( `Error: ${file.name}` )
    }
)


selector.onchange = function ( event ) {
    for ( var file of event.target.files ) {
        testFile ( file )
            .then ( result => addElem ( "img" ).src = result )
            .catch ( error => console.error ( error ) )
    }
}