使用Spring MVC上傳文件(多個文件)時,出現以下錯誤。春季 - 上傳表單 - 無法獲取文件列表
java.lang.NullPointerException
com.mkyong.common.controller.FileUploadController.save(FileUploadController.java:34)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
JSP
<form:form method="post" action="save"
modelAttribute="uploadForm" enctype="multipart/form-data">
<p>Select files to upload. Press Add button to add more file inputs.</p>
<input id="addFile" type="button" value="Add File" />
<table id="fileTable">
<tr>
<td><input name="files[0]" type="file" /></td>
</tr>
<tr>
<td><input name="files[1]" type="file" /></td>
</tr>
</table>
<br/><input type="submit" value="Upload" />
</form:form>
控制器
@RequestMapping(value = "/save", method = RequestMethod.POST)
public String save(
@ModelAttribute("uploadForm") FileUploadForm uploadForm,
Model map) {
List<MultipartFile> files = uploadForm.getFiles();
List<String> fileNames = new ArrayList<String>();
//counting the file size
System.out.println("Files count :"+files.size());
if(null != files && files.size() > 0) { //HERE 'files' is NULL
for (MultipartFile multipartFile : files) {
String fileName = multipartFile.getOriginalFilename();
fileNames.add(fileName);
//Handle file content - multipartFile.getInputStream()
}
}
任何人都可以請幫我解決這個?我仍在調試爲什麼我無法將文件(uploadForm)從jsp傳遞到控制器。
您可能需要在你的JSP使用Spring的頂級域名。嘗試使用'
'而不是'是否在庫中使用了兩個jar commons-io和commons-fileupload ?因爲上傳取決於這個罐子。 – KSHiTiJ
@kshitij - 是的。我添加了這兩個依賴 – user1732653