1 24 package org.riotfamily.components.editor; 25 26 import java.io.File ; 27 import java.io.IOException ; 28 29 import javax.servlet.http.HttpServletRequest ; 30 import javax.servlet.http.HttpServletResponse ; 31 32 import org.springframework.web.multipart.MultipartFile; 33 import org.springframework.web.multipart.MultipartHttpServletRequest; 34 import org.springframework.web.servlet.ModelAndView; 35 import org.springframework.web.servlet.mvc.Controller; 36 37 41 public class FileUploadController implements Controller { 42 43 private String fileParam = "Filedata"; 44 45 private String tokenParam = "token"; 46 47 private UploadManagerImpl uploadManager; 48 49 public FileUploadController(UploadManagerImpl uploadManager) { 50 this.uploadManager = uploadManager; 51 } 52 53 public ModelAndView handleRequest(HttpServletRequest request, 54 HttpServletResponse response) throws Exception { 55 56 if (request instanceof MultipartHttpServletRequest) { 57 handleMultipartRequest((MultipartHttpServletRequest) request, response); 58 } 59 return null; 60 } 61 62 protected void handleMultipartRequest(MultipartHttpServletRequest request, 63 HttpServletResponse response) throws IOException { 64 65 String token = request.getParameter(tokenParam); 66 if (uploadManager.isValidToken(token)) { 67 MultipartFile multipartFile = request.getFile(fileParam); 68 if ((multipartFile != null) && (!multipartFile.isEmpty())) { 69 String fileName = multipartFile.getOriginalFilename(); 70 File tempFile = File.createTempFile("upload", ".bin"); 71 multipartFile.transferTo(tempFile); 72 uploadManager.storeFile(token, tempFile, fileName); 73 } 74 } 75 else { 76 response.sendError(HttpServletResponse.SC_FORBIDDEN); 77 } 78 } 79 80 } 81 | Popular Tags |