Für den Artikel, den ich zuvor geschrieben habe, werde ich dieses Mal zusammenfassen, wie mehrere Dateien als Liste POSTEN.
[Spring Boot] Poste Dateien und andere Daten gleichzeitig [Axios] \ -Qiita
Der Endpunkt sieht folgendermaßen aus:
In diesem Beispiel wird es als Array empfangen, kann aber auch als Liste als "List
@PostMapping("/api/test")
public void create(
@RequestParam("intValue") Integer intValue,
@RequestPart("uploadFiles") MultipartFile[] multipartFile,
@RequestPart("form") @Valid SampleObject sampleObject,
BindingResult errorResult
) {
/*Interne Verarbeitung*/
}
SpringBoot-Endpunkte haben eine maximale Dateikapazität / Gesamtanforderungskapazität. Daher müssen Sie möglicherweise die Größenbeschränkung bei Bedarf lockern. Diese Methode ist unten zusammengefasst.
[Spring Boot] Ändern Sie die maximale Größe der hochzuladenden Multipart-Datei \ -Qiita
Der folgende Code nimmt die Form "POST-Funktion aufrufen durch Auswahl mehrerer Dateien -> Öffnen oder Abbrechen" an.
<!--Der Beitrag wird gleichzeitig mit der Auswahl aufgerufen. Es können mehrere ausgewählt werden, da mehrere angegeben sind-->
<input type="file"
@change="postFilesWithForm" multiple/>
Die Funktion zum POST ist wie folgt.
postFilesWithForm(ev) {
const formData = new FormData()
//Formdatenbeispiel
const form = {
formData: 'hogehoge'
}
//Blobized-Formular hinzufügen
formData.append('form', new Blob(
[JSON.stringify(form)], { type: 'application/json' }
))
//Datei hinzufügen
Array.from(ev.target.files).forEach(file => formData.append(`uploadFiles`, file))
/*POST-Verarbeitung mit formData*/
}
Ich habe die folgenden drei Punkte entwickelt.
append
wird als Array behandelt, wenn Sie es für dieselbe Eigenschaft wiederholen. Geben Sie es also so ein, wie es istArray.from (ev.target.files)
weil FileArray
nicht forEach
kann)Mit der obigen Methode können Sie ein Array / eine Liste von Dateien und anderen Daten gleichzeitig POSTEN.
Recommended Posts