package jp.dip.arimodoki.cntl;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.io.FileUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MaxUploadSizeExceededException;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
import jp.dip.arimodoki.common.CConst;
import jp.dip.arimodoki.model.FormFileIf;
@Controller
public class FileUpload implements CConst, HandlerExceptionResolver {
@Autowired
private FormFileIf frmupload;
@ModelAttribute("FormUpload")
public FormFileIf setupBind() {
logger.log_info(this,"setupBind");
return this.frmupload;
}
@RequestMapping(value = "/fileupload")
public String fileupload() {
return "showupload";
}
@RequestMapping(value = "/upload")
public String upload(
@RequestParam MultipartFile uploadfile
) throws Exception {
if(uploadfile.getOriginalFilename().length() >0) {
logger.log_info(this, "uploadFile size:[" + uploadfile.getBytes().length+"]");
File saveFile = new File("c:/temp/upload");
FileUtils.copyInputStreamToFile(uploadfile.getInputStream(), saveFile);
}
return "fileuploaded";
}
@Override
public ModelAndView resolveException(HttpServletRequest req,
HttpServletResponse resp, Object obj, Exception e) throws MaxUploadSizeExceededException {
Map<String, Object> model = new HashMap<>();
if (e instanceof MaxUploadSizeExceededException) {
model.put("errorMsg", "Maximum upload file size");
}
return new ModelAndView("errorpage", model);
}
}
|