Vor kurzem hatte ich zufällig Kontakt mit dem Projekt zur Trennung von Front-End und Back-End von Vue+Springboot und habe die Funktion zum Hochladen von Bildern verwendet und es aufgezeichnet. Teil des Formularcodes, der im Frontend übermittelt werden soll<el-form-item label="Titelbild"> <el-upload v-model="Datenformular.Titel" Klasse = "Avatar-Uploader" :Grenze="1" Listentyp = "Bildkarte" :on-preview="handleBildkartenvorschau" mehrere :http-request="Datei hochladen" :on-remove="handleEntfernen" :on-change='ÄndernHochladen' :file-list="Bilder"> <i class="el-icon-plus"></i> </el-upload> </el-form-item> Erklärung der Elemente im el-upload:
Rückgabe und Datenzurückkehren { Bilder: [{name: 'food.jpg', url: 'upload/2022/web/20210329194832973.png'}], Bild-URL: '', fileList: [], // Datei-Upload-Daten (mehrere Dateien in einer) dialogImageUrl: '', dialogVisible: false, Optionen: [], Inhalt: '', Editoroption: {}, sichtbar: falsch, Datenform: { ID: 0, Titel: '', Inhalt: '', bz: '' }, tempKey: -666666 // Temporärer Schlüssel, der verwendet wird, um das Problem zu lösen, dass der halb ausgewählte Status des Baumelements nicht an die Backend-Schnittstelle übergeben werden kann. # Muss optimiert werden} Bilder in der Vorschau anzeigen, hochladen und löschenchangeUpload: function(file, fileList) {//Bildvorschau this.fileList = fileList; }, Datei hochladen(Datei){ }, handleRemove(Datei, Dateiliste) { }, handlePictureCardPreview(Datei) { this.dialogImageUrl = Datei.URL; this.dialogVisible = true; }, Hier verwende ich das fomrData-Objekt zum Senden, da ich nur ein einzelnes Titelbild hochladen und einige andere Formularinhalte hinzufügen muss. // Formularübermittlung dataFormSubmit () { const form = new FormData() // FormData-Objekt form.append('file', this.fileList); form.append('Titel', dieses.Datenformular.Titel); form.append('Inhalt', this.$refs.text.value); dies.$refs['dataForm'].validate((gültig) => { if (gültig) { dies.$http({ URL: diese.$http.adornUrl(`/sys/inform/${!this.dataForm.id ? 'speichern' : 'aktualisieren'}`), Methode: 'post', Daten:Formular }).dann(({data}) => { wenn (Daten && Daten.Code === 0) { diese.$nachricht({ Meldung: „Vorgang erfolgreich“, Typ: "Erfolg", Dauer: 1500, beim Schließen: () => { this.visible = falsch dies.$emit('refreshDataList') } }) } anders { dies.$message.error(data.msg) } }) } }) } Im Hintergrund durch HttpServletRequest-Anforderung - WebUtils .getNativeRequest(request, MultipartHttpServletRequest.class) um die Dateianforderung abzurufen und die Datei auf dem Server oder lokal zu analysieren /** * @Autor lyy * PC-Hintergrund-Upload-Datei speichern*/ @RequestMapping(Wert = "sys/file/save", Methode = {RequestMethod.POST, RequestMethod.GET}) @Transaktional öffentliche R speichern(HttpServletRequest-Anfrage) { String klassifizieren = request.getParameter("klassifizieren"); MultipartHttpServletRequest multipartRequest = WebUtils .getNativeRequest(Anfrage, MultipartHttpServletRequest.class); String Dateiname = ""; wenn (multipartRequest != null) { Iterator<String> Namen = multipartRequest.getFileNames(); während (namen.hasNext()) { Liste<MultipartFile> Dateien = multipartRequest.getFiles(names.next()); if (files != null && files.size() > 0) { für (MultipartFile-Datei: Dateien) { Dateiname = Datei.getOriginalFilename(); Zeichenfolge SUFFIX = FileUtil.getFileExt(Dateiname); Datei uFile = neue Datei(); uFile.setFileName(Dateiname); uFile.setClassify(klassifizieren); uFile.setCreateTime(neues Datum()); uFile.setFileType(SUFFIX); : String-UUID = FileUtil.uuid(); versuchen { uFile.setPath(uploadFile(uuid,Datei) +uuid+"."+SUFFIX); } Fang (IOException e) { e.printStackTrace(); } fileService.speichern(uFile); } } } } return R.ok(); } Statische Methode zum Hochladen von Dateien auf den lokalen /** * Datei hochladen *@author lyy * @param-Datei * @zurückkehren * @throws IOException * @throws IllegalStateException */ öffentliche statische String-Uploaddatei (String-UUID, MultipartFile-Datei) löst IllegalStateException, IOException { aus. String defaultUrl = MyFileConfig.getFilePath(); String-Verzeichnis = java.io.File.separator; Zeichenfolge realeURL = StandardURL + Verzeichnis; java.io.File realFile = neue java.io.File(realUrl); wenn (!realFile.exists() und !realFile.isDirectory()) { realFile.mkdirs(); } Zeichenfolge vollständige Datei = echte URL + UUID + "." + FileUtil.getFileExt(file.getOriginalFilename()); Datei.ÜbertragenAn(neue java.io.Datei(vollständigeDatei)); String relativePlanUrl = Verzeichnis; return relativePlanUrl.replaceAll("\\", "/"); } Dies ist das Ende dieses Artikels über das Implementierungsbeispiel für den Bildupload mit Vue+Element+Springboot. Weitere relevante Inhalte zum Hochladen von Bildern mit Vue+Element+Springboot 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:
|
<<: 6 interessante Tipps zum Einstellen von CSS-Hintergrundbildern
Inhaltsverzeichnis Redis auf Docker installieren ...
In diesem Artikel wird der spezifische Code von j...
Inhaltsverzeichnis Frage: 1. Erster Versuch 2. Ra...
Finden Sie das Problem Heute bin ich auf ein Prob...
Vorwort Dieser Artikel stellt hauptsächlich die d...
Inhaltsverzeichnis Ergebnisse erzielen Einführung...
Import: Aufgrund der Projektanforderungen werden ...
Win10-Installation (überspringen, falls bereits i...
Ich habe diese Frage heute in der SQL-Schulungsfr...
Dieser Artikel beschreibt Beispiele zum Erstellen...
Navigationsleiste erstellen: Technische Vorausset...
Inhaltsverzeichnis Überblick 1. Funktion Entprell...
„Großartig“ sind wahrscheinlich die beiden Worte, ...
1. MySQL 1.1 MySQL-Installation mysql-5.5.27-winx...
Die spezifischen Schritte zur Installation von my...