@RequestMapping(value = "/uploadFile", method = RequestMethod.POST)
public ModelAndView getUploadFile(HttpServletRequest request, HttpServletResponse response) {
System.out.println("fucking spring3 MVC upload file with Multipart form");
String myappPath = request.getSession().getServletContext().getRealPath("/");
try {
if (request instanceof MultipartHttpServletRequest) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
System.out.println("fucking spring3 MVC upload file with Multipart form");
// String myappPath = multipartRequest.getServletContext().getRealPath("/");
// does not work, oh my god!!
MultipartFile file = multipartRequest.getFiles("userfile1").get(0);
long size = file.getSize();
byte[] data = new byte[(int) size];
InputStream input = file.getInputStream();
input.read(data);
// create file, if no app context path, will throws access denied.
// seems like you could not create any file at tomcat/bin directory!!!
File outFile = new File(myappPath + File.separator + file.getOriginalFilename());
if(!outFile.exists()) {
outFile.createNewFile();
System.out.println("full path = " + outFile.getAbsolutePath());
} else {
System.out.println("full path = " + outFile.getAbsolutePath());
}
FileOutputStream outStream = new FileOutputStream(outFile);
outStream.write(data);
outStream.close();
input.close();
}
} catch (Exception e) {
e.printStackTrace();
}
return new ModelAndView("welcome");
}
@RequestMapping({"/account/account_save"})
public String saveAccount(Model model, HttpServletRequest req, MultipartFile user_pic) {String picPath = "", fn = "", imgUrl = "";
if (user_pic.getOriginalFilename().indexOf(".") != -1) {
fn += Codec.UUID()+user_pic.getOriginalFilename().substring(user_pic.getOriginalFilename().lastIndexOf("."));
}
if(fn!=""){
imgUrl = "/account/" + fn;
File realPath = new File(Constants.UPLOAD_REALPATH+"/account/" + fn);
try {
FileUtils.copyInputStreamToFile(user_pic.getInputStream(), realPath);
} catch (IOException e) {
e.printStackTrace();
}
}else{
imgUrl = Constants.DEFAULT_UPIC;
}
}