Ich verwende Spring MVC und dies ist meine Methode:
/**
* Upload single file using Spring Controller
*/
@RequestMapping(value = "/uploadFile", method = RequestMethod.POST)
public @ResponseBody ResponseEntity<GenericResponseVO<? extends IServiceVO>> uploadFileHandler(@RequestParam("name") String name, @RequestParam("file") MultipartFile file,HttpServletRequest request, HttpServletResponse response) {
if (!file.isEmpty()) {
try {
byte[] bytes = file.getBytes();
// Creating the directory to store file
String rootPath = System.getProperty("catalina.home");
File dir = new File(rootPath + File.separator + "tmpFiles");
if (!dir.exists())
dir.mkdirs();
// Create the file on server
File serverFile = new File(dir.getAbsolutePath() + File.separator + name);
BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(serverFile));
stream.write(bytes);
stream.close();
System.out.println("Server File Location=" + serverFile.getAbsolutePath());
return null;
} catch (Exception e) {
return null;
}
}
}
Ich muss die Sitzungs-ID in postman und auch die Datei übergeben. Wie kann ich das tun?
In postman setzen Sie den Methodentyp auf POST.
Wählen Sie dann Body -> form-data -> Geben Sie Ihren Parameternamen ein (Datei entsprechend Ihrem Code)
und auf der rechten Seite neben der Wertespalte gibt es ein Dropdownfeld "Text, Datei", wählen Sie Datei. Wählen Sie Ihre Bilddatei und senden Sie sie.
Für den Rest der "text" basierten Parameter können Sie sie wie üblich mit postman posten. Geben Sie einfach den Parameternamen ein und wählen Sie "Text" aus dem Dropdown-Menü auf der rechten Seite aus, geben Sie einen beliebigen Wert ein und klicken Sie auf die Schaltfläche Senden. Ihre Controller-Methode sollte aufgerufen werden.
Zum Beispiel so:
Body -> form-data -> Datei auswählen
Sie müssen "file" anstelle von "name" schreiben;
Sie können auch JSON-Daten aus dem Feld Body -> raw senden. (Einfach JSON-String einfügen)
Wenn Sie Cookies verwenden, um die Sitzung aufrechtzuerhalten, können Sie interceptor verwenden, um Cookies vom Browser an postman weiterzugeben.
Um eine Datei hochzuladen, können Sie auch die Registerkarte "Formulardaten" unter der Registerkarte "Körper" in Postman verwenden. In dieser Registerkarte können Sie Daten im Schlüssel-Wert-Format bereitstellen und für jeden Schlüssel können Sie den Wertetyp Text/Datei auswählen. Wenn Sie die Option "Dateityp" auswählen, wird die Datei hochgeladen.