Wie übergebe ich mehrere Dateien und andere Parameter mit jQuery AJAX an ein Spring Boot Backend?

Antwort

Um mehrere Dateien und andere Parameter mit jQuery AJAX an ein Spring Boot Backend zu übergeben, kannst du das `FormData`-Objekt verwenden. Hier ist ein Beispiel, wie du das machen kannst: 1. **HTML-Formular**: ```html <form id="uploadForm" enctype="multipart/form-data"> <input type="file" id="file1" name="file1" multiple> <input type="file" id="file2" name="file2" multiple> <input type="text" id="param1" name="param1" value="value1"> <input type="text" id="param2" name="param2" value="value2"> <button type="button" onclick="uploadFiles()">Upload</button> </form> ``` 2. **jQuery AJAX**: ```javascript function uploadFiles() { var formData = new FormData(); var files1 = $('#file1')[0].files; var files2 = $('#file2')[0].files; // Append files from file1 input for (var i = 0; i < files1.length; i++) { formData.append('files1', files1[i]); } // Append files from file2 input for (var i = 0; i < files2.length; i++) { formData.append('files2', files2[i]); } // Append other parameters formData.append('param1', $('#param1').val()); formData.append('param2', $('#param2').val()); $.ajax({ url: '/upload', type: 'POST', data: formData, processData: false, contentType: false, success: function(response) { console.log('Files uploaded successfully'); }, error: function(jqXHR, textStatus, errorThrown) { console.log('Error uploading files: ' + textStatus); } }); } ``` 3. **Spring Boot Controller**: ```java import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import org.springframework.http.ResponseEntity; @RestController public class FileUploadController { @PostMapping("/upload") public ResponseEntity<String> handleFileUpload( @RequestParam("files1") MultipartFile[] files1, @RequestParam("files2") MultipartFile[] files2, @RequestParam("param1") String param1, @RequestParam("param2") String param2) { // Process files and parameters for (MultipartFile file : files1) { // Handle file1 } for (MultipartFile file : files2) { // Handle file2 } // Handle other parameters System.out.println("Param1: " + param1); System.out.println("Param2: " + param2); return ResponseEntity.ok("Files uploaded successfully"); } } ``` In diesem Beispiel wird ein HTML-Formular verwendet, um Dateien und andere Parameter zu erfassen. Mit jQuery wird ein `FormData`-Objekt erstellt, das die Dateien und Parameter enthält. Dieses `FormData`-Objekt wird dann per AJAX an das Spring Boot Backend gesendet, wo die Dateien und Parameter verarbeitet werden.

Frage stellen und sofort Antwort erhalten

Verwandte Fragen

Was ist .gitignore?

Die `.gitignore`-Datei wird verwendet, um bestimmte Dateien und Verzeichnisse von der Versionskontrolle in einem Git-Repository auszuschließen. Du kannst darin Muster angeben, die Git ignorieren... [mehr]