<!-- spring實現文件上傳 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>
2.創建一個簡單的表單,如下
<form action="${ctxPath }/upload.action" id="infoform" method="post" name='infoform' enctype="multipart/form-data">
文件1:<input id="upic1" name="uploadify[]" type="file" ></input>
文件2:<input id="upic2" name="uploadify[]" type="file" ></input>
文件3:<input id="upic3" name="uploadify[]" type="file" ></input>
文件4:<input id="upic4" name="uploadify[]" type="file" ></input>
</form> 注意:form標籤中加上enctype="multipart/form-data"
3.創建一個控制器類,編寫保存文件的方法
@RequestMapping("/upload")
public void upload(@RequestParam(required=false,value="uploadify[]") MultipartFile[] files,HttpServletRequest request,HttpServletResponse response) throws IOException, org.apache.commons.fileupload.FileUploadException{
try {
request.setCharacterEncoding("UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Date date = new Date();// 獲取當前時間
SimpleDateFormat sdfFolderName = new SimpleDateFormat("yyyyMMdd");
String newFolderName = sdfFolderName.format(date); //存放文件夾名
// 獲得容器中上傳文件夾所在的物理路徑
String savePath = request.getSession().getServletContext().getRealPath("/") + "\\" + "upload\\" + newFolderName + "\\";
System.out.println("上傳文件存放路徑" + savePath + "; ");
File file = new File(savePath);
if (!file.isDirectory()) {
file.mkdirs();
}
// 遍歷上傳文件寫入磁盤
if (files != null && files.length > 0) {
for (int i = 0; i < files.length; i++) {
MultipartFile imageFile = files[i];
if (imageFile != null && !imageFile.isEmpty()) {
String fileName = PubFileUtil.generateRandomFileName()
+ PubFileUtil.getSuffix(imageFile);
imageFile.transferTo(new File(savePath, fileName));
}
}
}
如果是上傳一個文件,可以通過MultipartFile file = multipartRequest.getFile("pic");獲取到文件對象,然後transferTo(File dest)將文件寫入磁盤。
}