Null ModelAndView zurückgegeben DispatcherServlet mit dem Namen 'dispatcherServlet': vorausgesetzt, HandlerAdapter ausgefüllten Antrag Handhabung
Hi Jungs, da dies mein controller Klasse, wenn ich diese Anwendung ausführen, im postman ergänzt-auf seine Anzeige status 200 ok.aber Datei nicht Lesen wie kann ich pass Dateinamen mit Dateiendung als string-parameter in die Methode? was iam fehlt ur Hilfe ist spürbar und eine sachkundige
@RequestMapping(value = "/file/{name}", method = RequestMethod.GET)
public ResponseEntity<InputStreamResource> download(@PathVariable String name) {
try {
File inputFile = fileSystemHandler.read(name);
HttpHeaders headers = new HttpHeaders();
//headers.add(HttpHeaders.CONTENT_TYPE, "application/octet-stream");
headers.add(HttpHeaders.CONTENT_LENGTH, "" + inputFile.length());
headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename= " + name);
InputStreamResource isr = new InputStreamResource(new FileInputStream(inputFile));
return new ResponseEntity<InputStreamResource>(isr, headers, HttpStatus.OK);
} catch (Exception ex) {
//return data;
}
return null;
}
- Und das ist meine Datei-system-handler-Klasse
public File read(String name) {
File inputFile = null;
try {
inputFile = new File(env.getProperty("file.Path") + name);
return inputFile;
} catch (Exception ex) {
Logger.getLogger(FileSystemHandler.class.getName()).log(Level.SEVERE, null, ex);
}
return inputFile;
}
- Nie, solche Dinge zu tun: } catch (Exception ex) { // return Daten; }. Die Minimale Protokollierung die Ausnahme.
- Danke,yahooo Es arbeitet,Ihre Hilfe wird sehr spürbar und kompetent.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Frage lautet unklar, aber ich gehe davon aus, dass Sie bitten, so etwas wie "readme.txt" aber innerhalb der Anfrage bekommen Sie einfache "readme", wenn die überprüfung mit dem Namen. Dies ist, weil die Feder versucht zu benutzen .txt am Ende Weg, um zu bestimmen, den content-type der Antwort. Sie müssen entweder deaktiviert, das Verhalten oder die Nutzung einer trailing slash am Ende Ihrer Anfrage (http://localhost:8080/file/readme.txt/).
Deaktivieren in den Frühling-starten Sie tun würde, so etwas wie dieses: