@RequestMapping(value = "/save", method = RequestMethod.POST) public String save( @Valid @ModelAttribute("document") Document document, BindingResult result, @RequestParam("file") MultipartFile file) { if (result.hasErrors()) { return "doc/documents.tiles"; } System.out.println("Name:" + document.getName()); System.out.println("Desc:" + document.getDescription()); System.out.println("File:" + file.getName()); System.out.println("ContentType:" + file.getContentType()); try { Blob blob = Hibernate.createBlob(file.getInputStream()); document.setFilename(file.getOriginalFilename()); document.setContent(blob); document.setContentType(file.getContentType()); } catch (IOException e) { e.printStackTrace(); } try { documentService.save(document); } catch (Exception e) { e.printStackTrace(); } return "redirect:/doc/index"; }
@RequestMapping("/remove/{documentId}") public String remove(@PathVariable("documentId") Integer documentId) { documentService.remove(documentId); return "redirect:/doc/index"; }
@RequestMapping("/index") public String index(Map<String, Object> map) { try { map.put("document", new Document()); map.put("documentList", documentService.list()); } catch (Exception e) { e.printStackTrace(); } return "doc/documents.tiles"; }
@RequestMapping("/download/{documentId}") public String download( @PathVariable("documentId") Integer documentId, HttpServletResponse response) { Document doc = documentService.get(documentId); try { response.setHeader("Content-Disposition", "inline;filename=\"" + doc.getFilename() + "\""); OutputStream out = response.getOutputStream(); response.setContentType(doc.getContentType()); IOUtils.copy(doc.getContent().getBinaryStream(), out); out.flush(); out.close(); } catch (IOException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return null; }