Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Превью изображения перед загрузкой на сервер (https://javascript.ru/forum/events/62759-prevyu-izobrazheniya-pered-zagruzkojj-na-server.html)

Devil198711 28.04.2016 01:24

Превью изображения перед загрузкой на сервер
 
Ситуация такая:
Реализую загрузку аватаров, нужно сделать так чтобы после выбора изображения пользователе появлялась превью Аватара. Пока есть такой код:
function selectAva() {
var doc = document;
var typefile = doc.getElementById('file').files[0].type;
if (typefile != 'image/png' && typefile != 'image/jpeg') {
doc.getElementById('error').innerHTML = '<span class="errors_aut">Не правильный тип изображения!</span><br><br>';
} else {
doc.getElementById('error').innerHTML = '';
doc.getElementById('prevava').innerHTML = '<img src="'+Что вставить сюда?+'">';
}
}

Decode 28.04.2016 03:36

Devil198711,
<!doctype html>
<html>
<head>
  <meta charset="utf-8" />
  <title></title>
  <style>
    #preview img {
      width: 100px;
      height: 100px;
    }
  </style>
</head>
<body>
  <input id="upload" type="file" />
  <div id="preview"></div>
  
  <script>
    (function() {
      var inpElem = document.getElementById('upload'),
          divElem = document.getElementById('preview');
      
      inpElem.addEventListener("change", function(e) {
          preview(this.files[0]);
      });
      
      function preview(file) {
        if ( file.type.match(/image.*/) ) {
          var reader = new FileReader(), img;
          
          reader.addEventListener("load", function(event) {
            img = document.createElement('img');
            img.src = event.target.result;
            divElem.appendChild(img);
          });
          
          reader.readAsDataURL(file);
        }
      }
    })();
  </script>
</body>
</html>

laimas 28.04.2016 06:50

Decode, высоту лучше автоматом задавать от заданной ширины, иначе искажения могут быть.


Часовой пояс GMT +3, время: 16:04.