我将Java Web应用程序,以Spring框架和赞赏我对文件上传所面临的问题的一些建议。 原代码中使用org.apache.commons.fileupload写。
春天在什么MultipartFile包装org.apache.commons.fileupload或者我可以排除我的POM文件这种依赖?
我已经看到了下面的例子:
@RequestMapping(value = "/form", method = RequestMethod.POST) public String handleFormUpload(@RequestParam("file") MultipartFile file) { if (!file.isEmpty()) { byte[] bytes = file.getBytes(); // store the bytes somewhere return "redirect:uploadSuccess"; } else { return "redirect:uploadFailure"; } }
本来我想以此为榜样,但总是得到一个错误,因为它找不到此请求PARAM。 所以,在我的控制器我已经做了以下:
@RequestMapping(value = "/upload", method = RequestMethod.POST) public @ResponseBody ExtResponse upload(HttpServletRequest request, HttpServletResponse response) { // Create a JSON response object. ExtResponse extResponse = new ExtResponse(); try { if (request instanceof MultipartHttpServletRequest) { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; MultipartFile file = multipartRequest.getFiles("file"); InputStream input = file.getInputStream(); // do the input processing extResponse.setSuccess(true); } } catch (Exception e) { extResponse.setSuccess(false); extResponse.setMessage(e.getMessage()); } return extResponse; }
而且这是工作。 如果有人能告诉我为什么@RequestParam没有为我工作,我会很高兴。 BTW我有
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="2097152"/>
</bean>
在我的servlet上下文文件。