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

Detaillierte Erklärung häufig verwendeter CSS-Stile (Layout)

Kompatibel mit neuen CSS3-Eigenschaften In CSS3 k...

Eine schnelle Lösung für das Problem der PC- und Mobilanpassung

Beim Erstellen einer Webseite müssen wir normaler...

Detaillierte Erläuterung der Deep Copy und Shallow Copy im JS-Variablenspeicher

Inhaltsverzeichnis Variabler Typ und Speicherplat...

Tutorial zum Herunterladen und Installieren von XFTP (grafisches Tutorial)

Wenn Sie Dateien zwischen Windows und Linux übert...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.15

In diesem Artikel werden die Installations- und K...

Beispiel zum Ändern des Zeilenabstands einer HTML-Tabelle

Bei der Verwendung von HTML-Tabellen müssen wir m...

Äußerst detaillierte Freigabe der MySQL-Nutzungsspezifikation

In letzter Zeit waren viele datenbankbezogene Vor...

Fallstudie zu JavaScript-Style-Objekten und CurrentStyle-Objekten

1. Stilobjekt Das Stilobjekt stellt eine einzelne...

Eine detaillierte Diskussion der Komponenten in Vue

Inhaltsverzeichnis 1. Komponentenregistrierung 2....