Vue implementiert Beispielcode zum Ziehen von Dateien vom Desktop auf eine Webseite (kann Bilder/Audio/Video anzeigen)

Vue implementiert Beispielcode zum Ziehen von Dateien vom Desktop auf eine Webseite (kann Bilder/Audio/Video anzeigen)

Wirkung

Bildbeschreibung hier einfügen

Bildbeschreibung hier einfügen

Wenn Sie es verwenden, optimieren Sie bitte den Code und den Stil selbst

Der Code zum Nichtanzeigen von Bildern/Nichtabspielen von Video und Audio lautet wie folgt

<Vorlage>
 <div>
  <div v-on:dragover="tts" v-on:drop="ttrs" style="Breite: 800px;Höhe: 200px;Rand: 1px durchgehend schwarz;Schriftgröße: 40px;Zeilenhöhe: 200px">
   {{dt}}
  </div>
  <div v-for="(item,index) in fileList" :key="index" style="Breite: 800px;Höhe: 200px;Rahmen: 1px durchgehend schwarz;Schriftgröße: 40px;Position: relativ;oben:10px">
   <p style="Schriftgröße: 20px;Float: links;Position: relativ;links: 20pxWortumbruch:Wortumbruch;Wortumbruch:normal;">{{item.name}}</p>
   <h5 style="float:right;position: absolute;top: 80px;right: 20px">{{item.type}}</h5>
   <h6 style="position: absolute;top: 80px;float: left;left: 20px">{{item.size | sizeType}}</h6>
   <button style="float: right" @click="del(index)">Löschen</button>
  </div>
 </div>
</Vorlage>

<Skript>
 Standard exportieren {
  Name: "trs",
  Daten(){
   zurückkehren {
    dt:"",
    Dateiliste:[]
   }
  },
  Filter:
   GrößeTyp(Wert){
    sei kbs = val/1024;
    sei mbs = 0;
    sei gbs = 0;
    wenn(kbs>=1024){
     mbs = kbs/1024;
    }
    wenn(mbs>=1024){
     GBS = MBS/1024
     gibt gbs.toFixed(2)+"GB" zurück;
    }sonst wenn (mbs>=1){
     return mbs.toFixed(2)+"MB"
    }anders {
     returniere kbs.toFixed(2)+"KB"
    }
   }
  },
  montiert() {
   lass vm = dies;
   window.addEventListener("dragdrop", this.testfunc, false);


   document.addEventListener("dragover",Funktion () {
    konsole.log(111)
    vm.dt = „Ziehen Sie hierhin, um Dateien hochzuladen“
    Konsole.log(vm.dt)
   })
  },
  Methoden:{
   testfunktion(Ereignis) {
    Warnung("Dragdrop!");
    event.stopPropagation();
    event.preventDefault();
   },
   del(index){
    diese.Dateiliste.splice(index,1)
    wenn(diese.fileList.length==0){
     dies.dt = ""
    }
   },
   tts(e){
    console.log(e)
    this.dt = "Hierher ziehen, um die Datei hochzuladen"
   },
   ttrs(e){
    console.log(e)
    console.log(e.dataTransfer.files)
    let datas = e.dataTransfer.files;
    Daten.fürJeden(Element=>{
     this.fileList.push(Element)
    })
    e.stopPropagation();
    e.preventDefault();
    this.dt = "Upload abgeschlossen, Sie können mit dem Hochladen fortfahren"

   }
  }
 }
</Skript>

<Stilbereich>

</Stil>

Wenn Sie Bilder anzeigen/Videos abspielen/Audio abspielen möchten

Hier zeige/spiele ich standardmäßig die zuletzt hochgeladene Datei ab, Sie können sie nach Ihren Bedürfnissen ändern

<Vorlage>
 <div>
 <div
  v-on:dragover="tts"
  v-on:drop="ttrs"
  Stil = "Breite: 800px; Höhe: 200px; Rahmen: 1px tiefschwarz; Schriftgröße: 40px; Zeilenhöhe: 200px"
 >
  {{ dt }}
 </div>
 <div
  v-for="(Element, Index) in Dateiliste"
  :Schlüssel="Index"
  Stil = "Breite: 800px; Höhe: 200px; Rahmen: 1px tief schwarz; Schriftgröße: 40px; Position: relativ; oben: 10px"
 >
  <p
  Stil = "Schriftgröße: 20px; Float: links; Position: relativ; links: 20px Zeilenumbruch: Wortumbruch; Wortumbruch: normal;"
  >
  {{ Artikelname }}
  </p>
  <h5 style="float:right;position: absolute;oben: 80px;rechts: 20px">
  {{ Artikeltyp }}
  </h5>
  <h6 style="position: absolute;oben: 80px;float: links;links: 20px">
  {{ Artikelgröße | Größentyp }}
  </h6>
  <button style="float: right" @click="del(index)">Löschen</button>
 </div>
 <div Stil="position:relative;oben: 100px">
  <img v-if="isImage" :src="srcs" style="width: 800px" />
  <video v-if="isVideo" steuert :src="srcs" style="width: 800px"></video>
  <audio v-if="isAudio" steuert :src="srcs" style="width: 800px"></audio>
 </div>
 </div>
</Vorlage>

<Skript>
Standard exportieren {
 Name: "trs",
 Daten() {
 zurückkehren {
  dt: "",
  Dateiliste: [],
  Quellen:"",
  istBild:false,
  isAudio:false,
  isVideo:false
 };
 },
 Filter:
 Größentyp(Wert) {
  sei kbs = val / 1024;
  sei mbs = 0;
  sei gbs = 0;
  wenn (kbs >= 1024) {
  mbs = kbs / 1024;
  }
  wenn (mbs >= 1024) {
  GB = MBS / 1024;
  return gbs.toFixed(2) + "GB";
  } sonst wenn (mbs >= 1) {
  return mbs.toFixed(2) + "MB";
  } anders {
  return kbs.toFixed(2) + "KB";
  }
 }
 },
 montiert() {
 lass vm = dies;
 window.addEventListener("dragdrop", this.testfunc, false);

 document.addEventListener("dragover", Funktion() {
  konsole.log(111);
  vm.dt = „Ziehen Sie hierher, um Dateien hochzuladen“;
  Konsole.log(vm.dt);
 });
 },
 Methoden: {
  Datei lesen(Datei){
   lass vm = dies;
   : Der Reader kann nicht mit anderen Dateien verbunden werden.
   reader.readAsDataURL(Datei)
   Leser.onload = Funktion () {
    lass Typ = Datei.Typ.substr(0,5);
    wenn(Typ=="Bild"){
     vm.isImage = true;
     vm.isAudio =false;
     vm.isVideo = falsch;
    }sonst wenn(Typ=="Audio"){
     vm.isImage = falsch;
     vm.isAudio = true;
     vm.isVideo = falsch;
    }sonst wenn(Typ=="Video"){
     vm.isImage = falsch;
     vm.isAudio = false;
     vm.isVideo = true;
    }anders {
     alert("Kein Bild/Video/Audio")
    }
    vm.srcs = Leser.Ergebnis;
    // dies.$nextTick(()=>{
    //
    // })
   }
  },
 testfunktion(Ereignis) {
  Warnung("Dragdrop!");
  event.stopPropagation();
  event.preventDefault();
 },
 del(index) {
  diese.fileList.splice(index, 1);
  wenn (diese.fileList.length === 0) {
  dies.dt = "";
  }
 },
 tts(e) {
  konsole.log(e);
  this.dt = "Hierher ziehen, um die Datei hochzuladen";
 },
 ttrs(e) {
  konsole.log(e);
  Konsole.log(e.dataTransfer.files);
  let datas = e.dataTransfer.files;
  datas.forEach(item => {
  diese.fileList.push(Element);
  });
  dies.readFile(diese.fileList[diese.fileList.length-1])

  e.stopPropagation();
  e.preventDefault();

  this.dt = "Upload abgeschlossen, Sie können mit dem Hochladen fortfahren";
 }
 }
};
</Skript>

<Stilbereich></Stil>

Dies ist das Ende dieses Artikels über die Verwendung von Vue zum Ziehen von Dateien vom Desktop auf die Webseite (kann Bilder/Audio/Video anzeigen). Weitere verwandte Inhalte zum Ziehen von Dateien mit Vue finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die folgenden verwandten Artikel weiter. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • electron+vue realisiert div contenteditable Screenshot-Funktion
  • Vue öffnet ein neues Fenster und implementiert ein grafisches Beispiel für die Parameterübergabe
  • Schritte zum Kapseln der Karussellkomponente in vue3.0
  • Vue Grundanleitung Beispiel grafische Erklärung
  • Vue imitiert den Karusselleffekt von Ctrip (gleitendes Karussell, unten hochadaptiv)
  • vue+echarts realisiert den Flusseffekt der China-Karte (detaillierte Schritte)
  • Ein Beispiel für die Umgestaltung eines Puzzlespiels mit vue3
  • So verwenden Sie Balkendiagramme in Vue und ändern die Konfiguration selbst
  • Vue implementiert unregelmäßige Screenshots

<<:  So exportieren Sie MySQL-Abfrageergebnisse in CSV

>>:  Alibaba Cloud Server Ubuntu Konfigurations-Tutorial

Artikel empfehlen

Beispiel für einen WeChat-Applet-Rechner

Beispiel für einen WeChat-Applet-Rechner. Zu Ihre...

MySQL-Join-Abfragesyntax und Beispiele

Verbindungsabfrage: Es ist das Ergebnis der paarw...

Detaillierte Erklärung des Vue3-Sandbox-Mechanismus

Inhaltsverzeichnis Vorwort Browser kompilierte Ve...

JavaScript Canvas zeichnet dynamische Drahtgittereffekte

In diesem Artikel wird der spezifische Code des d...

CSS-Pseudoklasse: empty makes me shine (Beispielcode)

Jeder, der meine Artikel in letzter Zeit gelesen ...

CSS-Float-Eigenschaftsdiagramm, Details der Float-Eigenschaft

Die korrekte Verwendung der CSS-Float-Eigenschaft...

So starten Sie Tomcat mit jsvc (als normaler Benutzer ausführen)

Einführung in jsvc In der Produktion sollte Tomca...

MySql fügt Daten erfolgreich ein, meldet aber [Err] 1055 Fehlerlösung

1. Frage: Ich habe in diesen Tagen Einfügevorgäng...

Tutorial zur Installation von Odoo14 aus dem Quellcode unter Ubuntu 18.04

Inhaltsverzeichnis Hintergrund dieser Serie Überb...

So entfernen Sie in Linux ganz einfach installierte Quellpakete

Schritt 1: Stow installieren In diesem Beispiel v...

So verwenden Sie Navicat zum Bedienen von MySQL

Inhaltsverzeichnis Vorwort: 1. Einführung in Navi...