[英]File Upload to Server Directory Using Spring MVC
我正在尝试从客户端计算机上载文件到服务器目录。 我使用以下代码:
FileUpload.jsp
<form:form commandName="fileUpload" action="upload.action" method="post" enctype="multipart/form-data">
<form:label path="fileData">Upload a File</form:label> <br />
<form:input type="file" path="fileData" />
<input type="submit" value="upload" >
</form:form>
在我的控制器中:
@RequestMapping("/upload.action")
public String upload(@ModelAttribute("fileUpload") FileUpload fileUpload,HttpServletResponse response,Model model)
{
CommonsMultipartFile multipartFile = fileUpload.getFileData();
String orginalName = multipartFile.getOriginalFilename();
String filePath = "/my_uploads/"+orginalName;
File destination = new File(filePath);
String status ="success";
try {
multipartFile.transferTo(destination);
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
status="failure";
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
status="iofailure";
}
model.addAttribute("status", status);
return "home";
}
FileUpload.java:
{
private CommonsMultipartFile fileData;
....
}
NullPointerException
抛出在String orginalName = multipartFile.getOriginalFilename();
行String orginalName = multipartFile.getOriginalFilename();
..我做错了什么事?
尝试在您的请求处理程序中将MultipartFile
作为参数添加。
@RequestMapping("/upload.action")
public String upload(@RequestParam(value = "file") MultipartFile file,
HttpServletResponse response,Model model)
{
//Controller logic...
}
这将需要您在调度程序的配置中注册一个新bean。
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="5000000"/>
</bean>
@RequestMapping("/upload.action")
public String upload(@RequestParam("fileData") MultipartFile file,
HttpServletResponse response,Model model)
{
//Controller logic...
}
您的请求处理程序方法的参数中应该具有相同的名称,无论您在multiupFile(“ fileData”)的FileUpload Pojo中给出的名称如何
谢谢,
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.