Image Upload Demo

Using file input and FileReader to upload and display images.

by orion_prime

HTML

<img class="profile-pic" id = 'pic' src="http://cdn.cutestpaw.com/wp-content/uploads/2012/07/l-Wittle-puppy-yawning.jpg" />
<div id='button' class="upload-button">Upload Image</div>
<script src="https://cdn.jsdelivr.net/npm/exifr/dist/lite.umd.js"></script>
<input class="file-upload" type="file" id='fup' accept="image/*"/>

CSS

.upload-button {
    padding: 4px;
    border: 1px solid black;
    border-radius: 5px;
    display: block;
    float: left;
}

.profile-pic {
    max-width: 200px;
    max-height: 200px;
    display: block;
}

.file-upload {
    display: none;
}

JavaScript

const fileUpload = document.getElementById('fup')
const pic = document.getElementById('pic')
const button = document.getElementById('button')

console.log(fileUpload.id, pic.id)

const readURL = (input) =>{
  if (input.files && input.files[0]) {
    var reader = new FileReader();

    reader.onload = (e)=> {
      pic.src = e.target.result;
    }

    reader.readAsDataURL(input.files[0]);
  }
}



fileUpload.addEventListener('change', ()=> {
  readURL(this);
});

button.addEventListener('click', ()=> {
  fileUpload.click();
});