Faça upload de imagem do armazenamento local usando Vuejs

Inchara Raveendra

Quando você clica em "Escolher arquivo" e seleciona uma imagem para fazer upload, o caminho aparece. A imagem é carregada somente depois que você clica em "Escolher arquivo" mais uma vez.

Como resolver isso e fazer o upload conforme e quando o arquivo for escolhido?

Qualquer ajuda seria muito apreciada. Obrigada.

new Vue({
  el: '.app',
  data: {
  userImage: ''
  },
  methods: {
    onFileChange(e) {
        var files = e.target.files || e.dataTransfer.files
        if (!files.length) {
          return
        }
        this.createImage(files[0])
      },
      createImage(file) {
        var reader = new FileReader()
        var vm = this

        reader.onload = (e) => {
          vm.userImage = e.target.result
        }
        reader.readAsDataURL(file)
      },
       removeImage: function (e) {
         this.userImage = ''
       }
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.2/vue.min.js"></script>
<div class="col-xl-3 col-lg-3 col-md-4 col-sm-6 col-xs-6 text-center app">

  <img class="profile-image" :src="userImage" />

  <div v-if="!userImage">
    <input type="file" round class="change-profile-image" @change="onFileChange" />
  </div>
  <div v-else>
    <button class="delete-profile-image" color="secondary" icon="delete" @click="removeImage">Delete</button>
  </div>

</div>

Meu código no JSfiddle .

Terry

Você não deve confiar em ouvir o clickevento. O que você está procurando é o changeevento, ou seja, use em @changevez de @click:

<input type="file" round class="change-profile-image" @change="onFileChange" />

Veja o violino atualizado: https://jsfiddle.net/hrtzezk8/5/ ou o snippet de prova de conceito abaixo:

new Vue({
  el: '.app',
  data: {
  userImage: ''
  },
  methods: {
    onFileChange(e) {
        var files = e.target.files || e.dataTransfer.files
        if (!files.length) {
          return
        }
        this.createImage(files[0])
      },
      createImage(file) {
        var reader = new FileReader()
        var vm = this

        reader.onload = (e) => {
          vm.userImage = e.target.result
        }
        reader.readAsDataURL(file)
      },
       removeImage: function (e) {
         this.userImage = ''
       }
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.2/vue.min.js"></script>
<div class="col-xl-3 col-lg-3 col-md-4 col-sm-6 col-xs-6 text-center app">

  <img class="profile-image" :src="userImage" />

  <div v-if="!userImage">
    <input type="file" round class="change-profile-image" @change="onFileChange" />
  </div>
  <div v-else>
    <button class="delete-profile-image" color="secondary" icon="delete" @click="removeImage">Delete</button>
  </div>

</div>

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Faça upload da imagem para o armazenamento de blob do azure usando python

Faça upload da imagem para o armazenamento de blob do azure usando python

Faça upload da imagem em um blob de armazenamento usando texto datilografado e angular2

como fazer upload de uma imagem para armazenamento em nuvem do Google com GAE usando php

como fazer upload de imagem para armazenamento em nuvem do Google usando Python 2.7

Faça upload da imagem em um blob de armazenamento usando o texto digitado e angular2

Faça upload de PDF ou WORD para armazenamento local

Faça upload do arquivo de imagem compactado do lado do cliente usando JavaScript

upload de imagem para armazenamento do firebase do flutter

upload de imagem para armazenamento do firebase do flutter

Faça upload da imagem do panorama usando a API de publicação do Street View

Como faço upload de arquivos de forma programática para o JupyterLab a partir do meu armazenamento local?

Faça upload da imagem tirada com a câmera para o armazenamento do Firebase no React Native

Como fazer upload de vários arquivos do armazenamento local para o armazenamento de blob do azure usando o arquivo .sh localizado no azure webapp

Faça upload de uma imagem para o div usando .load ()

Faça upload de uma imagem do shell do Django

Como exibir uma imagem do armazenamento local

Armazenamento de dados no armazenamento local usando Javascript

Visualizar uma imagem antes do upload de VUEjs

Faça o upload do arquivo (imagem) pelo método .put() para o armazenamento do Firebase obter um resultado inesperado

obter mais de um item do armazenamento local usando javscript

Como fazer upload de imagem para o armazenamento em nuvem do firebase do campo de entrada?

Upload de uma imagem de um link externo para o armazenamento em nuvem do google usando o google app engine python

Firebase Cloud Functions: faça upload de arquivos usando putString de armazenamento

Como posso ler uma imagem do armazenamento de blobs do Azure diretamente usando Opencv sem baixá-la para um arquivo local?

Faça upload de artefatos de CI do Gitlab para um armazenamento fora do Gitlab

Como faço o upload de um arquivo SQLite grande para o armazenamento de objetos usando o Swift do OpenStack (via Python)

Faça upload de arquivos para o armazenamento em nuvem da Oracle usando PHP

Como obter a URL de uma imagem armazenada no armazenamento de Blob do Azure após o upload?