Vue verwendet die Element-el-upload-Komponente, um auf die Grube zu treten

Vue verwendet die Element-el-upload-Komponente, um auf die Grube zu treten

1. Grundlegende Verwendung

Ich habe kürzlich die el-upload-Komponente studiert und bin dabei auf einige kleine Fehler gestoßen. Ich habe es aufgeschrieben, damit jeder es lernen kann

Es ist sehr üblich, die Komponenten des Elements direkt zur Verwendung zu kopieren, aber bei der Verwendung der Upload-Komponente treten Probleme auf.

Wenn Sie den Upload direkt verwenden, wird dieser Fehler auf jeden Fall auftreten

Und die hochgeladenen Bilder können plötzlich verschwinden. Wenn Sie zu diesem Zeitpunkt keine Schnittstelle haben, wissen Sie nicht, warum sie entfernt wurden. Wenn also keine Schnittstelle vorhanden ist, können Sie nur raten, ob das Bild aufgrund eines domänenübergreifenden Fehlers verschwunden ist.

Schließlich habe ich die Adresse des Unternehmens erhalten und die Schnittstelle angepasst. Die Antwort war richtig: action="https://jsonplaceholder.typicode.com/posts/". Dies ist der Aktionsparameter im Element. Bei Verwendung von HTML wird Ajax aufgerufen, wodurch die Same-Origin-Policy anders wird und ein Fehler auftritt.

Im Allgemeinen stellt das Unternehmen einen Adresslink zum Konvertieren des Bildes in ein URL-Format bereit. Sie müssen ihn nur aufrufen und speichern. Möglicherweise benötigen Sie jedoch Token-Berechtigungen. Zu diesem Zeitpunkt gibt es etwas, das selten getan wird. Im Allgemeinen wird das Token nicht direkt über die Komponente übertragen, sodass das Token über die el-upload-Komponente übertragen werden muss.

 <el-hochladen
            Aktion="https://xxxx Adresse"
            :header="Header importieren"
          >
   </el-upload>
 
importiere {getToken} von '@/utils/token'
 
 
Daten() {
    zurückkehren {
      importHeaders: {token: getToken()},
    };
  },

2. Bildmengenkontrolle

 <el-hochladen
            Aktion="https://security.brofirst.cn/api/common/upload"
            :header="Header importieren"
            :Grenze="Grenze"
             :on-exceed="MasterdateiMax"
          >
            <i class="el-icon-plus"></i>
          </el-upload>
 
 
 
  // Wie viele Bilder können maximal hochgeladen werden masterFileMax(files, fileList) {
        console.log(Dateien, Dateiliste);
        this.$message.warning(`Bitte laden Sie höchstens ${this.limit} Dateien hoch.`);
    },

3. Bildformatbeschränkungen/mehrere Bilder können ausgewählt werden

  <el-hochladen
             akzeptieren=".JPG, .PNG, .JPEG,.jpg, .png, .jpeg"
             mehrere
          >
            <i class="el-icon-plus"></i>
          </el-upload>

Beispiel

   <el-hochladen
            Aktion="https://xxxx"
            :header="Header importieren"
            Listentyp = "Bildkarte"
            :on-preview="handleBildkartenvorschau"
            :on-remove="handleEntfernen"
            :bei-Erfolg="handleAvatarSuccess"
            :Grenze="Grenze"
             :on-exceed="MasterdateiMax"
             akzeptieren=".JPG, .PNG, .JPEG,.jpg, .png, .jpeg"
             mehrere
          >
            <i class="el-icon-plus"></i>
          </el-upload>
 
 
 
<Skript>
importiere {getToken} von '@/utils/token'
Standard exportieren {
  Name: „Feedback“,
  Daten() {
    zurückkehren {
      importHeaders: {token: getToken()},
       Bilder:[],
      Grenze:9
    };
  },
  Methoden: {
  //Bild löschen handleRemove(file, fileList) {
     const idx = this.images.findIndex(it=>it===file.response.data.fullurl)
     dies.images.splice(idx,1)
    },
    handlePictureCardPreview(Datei) {
      this.dialogImageUrl = Datei.URL;
      this.dialogVisible = true;
    },
    //Daten nach erfolgreichem Upload handleAvatarSuccess(response, file, fileList){
      console.log(Antwort, Datei, Dateiliste);
      wenn(Antwort.code===1){
        dies.bilder.push(antwort.daten.volleURL)
      }
    },
    // Wie viele Bilder können maximal hochgeladen werden masterFileMax(files, fileList) {
        console.log(Dateien, Dateiliste);
        this.$message.warning(`Bitte laden Sie höchstens ${this.limit} Dateien hoch.`);
    }
  }
};
</Skript> 

Ergänzung: Verwenden Sie die Upload-Komponente von element-ui im ​​Vue-Projekt

<el-hochladen
               v-sonst
               Klasse = "sicherstellen, dass Butt"
               :Aktion="Datei-Url importieren"
               :data="Daten hochladen"
               Name="Importdatei"
               :beiFehler="UploadFehler"
               :onSuccess="Uploaderfolgreich"
               :beforeUpload="vorAvatarUpload"
               >
               <el-button size="small" type="primary">OK</el-button>

Unter ihnen ist importFileUrl die Hintergrundschnittstelle, upLoadData ist der zusätzliche Parameter, der beim Hochladen von Dateien hochgeladen werden muss, uploadError ist die Rückruffunktion, wenn der Dateiupload fehlschlägt, uploadSuccess ist die Rückruffunktion, wenn der Dateiupload erfolgreich ist, und beforeAvatarUpload ist die Funktion, die vor dem Hochladen der Datei aufgerufen wird. Hier können wir den Dateityp beurteilen.

Daten () {
    importFileUrl: 'http:dtc.com/cpy/add',
    Daten hochladen: {
        cpyId: '123456', 
        auftretenZeit: '2017-08'
    }
},
Methoden: {
    // Rückruf nach erfolgreichem UploaduploadSuccess (response, file, fileList) {
      console.log('Datei hochladen', Antwort)
    },
    // Upload-Fehler uploadError (Antwort, Datei, Dateiliste) {
      console.log('Upload fehlgeschlagen, bitte versuchen Sie es erneut!')
    },
    //Bestimmen Sie die Dateigröße vor dem Hochladen beforeAvatarUpload (file) {
      const Erweiterung = Datei.Name.Split('.')[1] === 'xls'
      const extension2 = datei.name.split('.')[1] === 'xlsx'
      const extension3 = datei.name.split('.')[1] === 'doc'
      const extension4 = datei.name.split('.')[1] === 'docx'
      const isLt2M = Dateigröße / 1024 / 1024 < 10
      wenn (!Erweiterung && !Erweiterung2 && !Erweiterung3 && !Erweiterung4) {
        console.log('Die hochgeladene Vorlage kann nur im xls-, xlsx-, doc- oder docx-Format vorliegen!')
      }
      wenn (!isLt2M) {
        console.log('Die Größe der hochgeladenen Vorlage darf 10 MB nicht überschreiten!')
      }
      Erweiterung zurückgeben || Erweiterung2 || Erweiterung3 || Erweiterung4 && isLt2M
    }
}

Dies ist das Ende dieses Artikels über die Verwendung der Element-el-upload-Komponente in Vue. Weitere relevante Inhalte zur Vue-Element-el-upload-Komponente finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Verwendung der Upload-Komponente „el-upload“ von vue-cli3.0+element-ui
  • vue+elementUI (el-upload) Bildkomprimierung, standardmäßiger Komprimierungsvorgang mit gleichem Verhältnis
  • Lösen Sie das Problem, dass submit() nicht funktioniert, wenn die Methode before-upload von el-upload in vue2.0 element-ui false zurückgibt

<<:  So zeigen Sie den Nginx-Konfigurationsdateipfad und den Ressourcendateipfad an

>>:  MySQL Master-Slave-Replikationsprinzip und zu beachtende Punkte

Artikel empfehlen

Das Prinzip und die Anwendung der ES6-Dekonstruktionszuweisung

Inhaltsverzeichnis Array-Destrukturierungszuweisu...

Tutorial zur Installation und Konfiguration von MySQL 5.7

In diesem Artikel finden Sie das Tutorial zur Ins...

Analysieren Sie CSS, um die Farbfunktion des Bildthemas zu extrahieren (Tipps)

Hintergrund Alles begann, als ein Klassenkamerad ...

Informationen zum Textumbruchproblem bei IE-Labels (LI)

Ich habe lange damit gekämpft und nach einiger Suc...

Detaillierte Erläuterung der Nginx-Prozessverwaltungs- und Neuladeprinzipien

Prozessstrukturdiagramm Nginx ist eine Multiproze...

Beispielcode zur Implementierung einer schwebenden Seitenbox basierend auf JS

Wenn die Bildlaufleiste nach unten gezogen wird, ...

Mehrere Möglichkeiten zum Einfügen von SVG in HTML-Seiten

SVG (Scalable Vector Graphics) ist ein Bildformat...

Analysieren der häufig verwendeten v-Anweisungen in vue.js

Inhaltsverzeichnis Erklärung des V-Texts bei „if“...