Potrzebuje pobrac plik z dysku i od razu zwrócic go do zapisu równiez na dysk(tak jakbym pobierał coś ze storny webowej). Takie trochę nietypowe zachowanie. Z samym pobraniem nie ma problemu ale juz zapis to nie. Próbuje zrobić to przez IOUtils ale nic z tego tym bardziej że mój plik wsadowy to xlsx. Czy ktoś wie jak można to sensownie rozwiazac ? najlepiej aby było to w jednym żadaniu w springu.
Ale co dokładnie nie działa? Chcesz kopiować plik z miejsca A do miejsca B na dysku? Bo tak zrozumiałem to co napisałeś - https://www.baeldung.com/java-copy-file
@damianem: samo kopiowanie nie jest problem ale potrzebuje to zrobić tak że po załadowaniu wyskakuje mi okno gdzie zapisać plik. I najlepiej w jednym rządaniu.
Czy postem ładuje plik i od razu wyskakuje mi okienko gdziue zapisać ten plik :)
Nie bardzo rozumiem w czym jest problem. Możesz pokazać kod który ci nie działa? Tak z palca, coś a'la:
@PostMapping("/")
public ResponseEntity<Resource> handleFileUpload(@RequestParam("file") MultipartFile file) {
return ResponseEntity.ok(file.getResource());
}
nie pójdzie?
Potrzebuje pobrac plik z dysku i od razu zwrócic go do zapisu równiez na dysk(tak jakbym pobierał coś ze storny webowej).
No ale co to znaczy od razu go zwrócić?
Takie trochę nietypowe zachowanie.
No co ty...
Z samym pobraniem nie ma problemu ale juz zapis to nie. Próbuje zrobić to przez IOUtils
FileChannels?
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/channels/FileChannel.html
do teg momentu to wiem ale potrzenuje aby zwroił mi plik do zapisu. I musi byc to pliks xsl albo xslx . W MediaType nie wiem za bardzo której opcji użyc.
@Dev007: No świetnie, ale to mogłes pokazać co już masz i napisać konkretnie z czym masz problem. Nie umiesz ustawić content disposition?
@PostMapping(value = "/", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
public ResponseEntity<Resource> handleFileUpload(@RequestParam("file") MultipartFile file) {
return ResponseEntity.ok().header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=dupa.xlsx").body(file.getResource());
}
@Shalom: dokładnie mi o to chodzilo. Dziękuje
Przyznam ze nie pojmuje po co ci taki endpoint, bo on w zasadzie jedyne co robi to przewala dane bez sensu przez serwer, no ale co kto lubi :D
@Shalom: taki rozkas z góry :)