Vorschau eines Bildes, bevor es in VUEjs hochgeladen wird [duplicate]

Lesezeit: 3 Minuten

Benutzer-Avatar
omiz

Ich weiß, diese Frage wurde gestellt. Aber ich habe keine Ahnung, wie man den Code in vuejs verwendet. Ich habe viel versucht, aber ohne Ergebnisse. Ich habe auch meinen Code hinzugefügt. Kann mir bitte einer helfen? Das ist mein Code. Vielen Dank

html

<template>
<div class="fileUpload">
    <b-container fluid>

        <h4>Image Overview</h4>
        <b-button @click="$refs.fileInput.click()" class="btn-right">Select an image</b-button>

        <b-table @row-clicked="viewImage" striped hover :items="images" :fields="image_fields"></b-table>

        <input style="display: none" ref="fileInput" type="file" @change="fileSelected" enctype="multipart/form-data">
        <b-button variant="success" class="btn-right" @click="uploadImage" method="post">Upload image</b-button>


    </b-container>
</div>

js

<script>
export default {
    name: 'listImage',
    data() {
        return {
            selectedFile: null,
            images: [],
            image_fields: ['id', 'name'],
            total_images: 1               
        }
    },
    methods: {
        fileSelected(evt) {
            evt.preventDefault()
            console.log(evt);
            this.selectedFile = evt.target.files[0]
        },
        uploadImage() {
            var data = new FormData();
            data.append('image', this.selectedFile, this.selectedFile.data)
            var token = sessionStorage.getItem('token')
            const config = {
                headers: {
                    'Content-Type': 'multipart/form-data'
                }
            }
            window.API.post('https://110.10.56.10:8000/images/?token=' + token, data, config)
                .then(response => this.$router.push('/listImage'))
                .catch((error) => {
                    console.log(JSON.stringify(error))
                })
        }
    }
}

  • Danke, aber ich habe es auch versucht … keine Ergebnisse

    – omiz

    5. März 2018 um 8:42 Uhr

  • Versuchen codepen.io/mobifreaks/pen/LIbca

    – Shubham Patel

    5. März 2018 um 8:48 Uhr

  • Wie kann ich diesen Code in vuejs verwenden?

    – omiz

    5. März 2018 um 9:08 Uhr

  • function readURL(input) { if (input.files && input.files[0]) { var reader = neuer FileReader (); reader.onload = function (e) { $(‘#blah’) .attr(‘src’, e.target.result); }; reader.readAsDataURL(input.files[0]); } }

    – omiz

    5. März 2018 um 9:08 Uhr

Bitte beachten Sie, dass ein Browser nicht alle Bildtypen anzeigen kann (zB: ein TIFF funktioniert mit dieser Methode nicht).

Es gibt ein paar Schritte:

const vm = new Vue({
  el: '#app',
  data() {
    return {
      url: null,
    }
  },
  methods: {
    onFileChange(e) {
      const file = e.target.files[0];
      this.url = URL.createObjectURL(file);
    }
  }
})
body {
  background-color: #e2e2e2;
}

#app {
  padding: 20px;
}

#preview {
  display: flex;
  justify-content: center;
  align-items: center;
}

#preview img {
  max-width: 100%;
  max-height: 500px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.13/vue.js"></script>
<div id="app">
  <input type="file" @change="onFileChange" />

  <div id="preview">
    <img v-if="url" :src="url" />
  </div>
</div>

  • Exzellent! sehr einfach und funktional!

    – Wladimir Salguero

    15. November 2018 um 20:29 Uhr

  • Wirklich schöne und kurze Lösung! Vielen Dank

    – oBo

    13. Februar 2019 um 14:54 Uhr

  • das ist fantastisch!

    – Khan Shahrukh

    23. Mai 2019 um 18:31 Uhr

  • Ich weiß, dass diese Codes funktionieren können, aber können Sie das kurz erklären? wie die Dinge in der method. Danke

    – Choi

    30. August 2019 um 2:29 Uhr


  • @ Choy Die onFileChange Die Methode nimmt ein Ereignis als Argument entgegen, das durch die Eingabe ausgelöst wird, wenn eine Datei geändert wird input type=file speziell hat a files -Attribut, das die Liste der Dateien ist, die es derzeit enthält. Dies ist eine einzelne Dateieingabe, weshalb ich sie auf das erste Element beschränke 0. Wenn keine Datei vorhanden ist, wird undefiniert zurückgegeben, wodurch das Bild gelöscht wird, andernfalls zeigt es auf das Bild des Benutzers. Danach habe ich verwendet URL.createObjectURL() die für Browser nativ ist, um eine Objekt-URL für diese lokale Datei zu erstellen, die ich dann als src Attribut für das Bild.

    – wafs

    30. August 2019 um 3:59 Uhr

1103380cookie-checkVorschau eines Bildes, bevor es in VUEjs hochgeladen wird [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy