概述
上篇虽然可以实现上传多个文件,但是没有实现上传多文件的同时上传表单其他信息 利用MultipartFile实现
upload.jsp 内容
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<title>File Upload!</title>
<script type="text/javascript"
src="<c:url value="/resources/js/jquery-1.9.1.js"/>"></script>
<script type="text/javascript">
$(document)
.ready(
function() {
$("#addFile")
.click(
function() {
var fileIndex = parseInt($(
"#addFileDiv").children().length);
var index = fileIndex - 2;
alert(index);
$("#addFileDiv")
.append(
'<input name="multiUploadFiles['+index+']" type="file"/><br/>');
});
});
</script>
</head>
<body>
<!-- multiUploadFiles -->
<form:form action="/CensusRegisterApproveSystem/uploadFiles.action"
modelAttribute="multiFileUploadForm" method="post"
enctype="multipart/form-data">
<div id="addFileDiv">
<input type="text" name="itemname"> <br />
<input type="text" name="description"> <br />
<input type="file" name="multiUploadFiles[0]" /> <br />
<input type="file" name="multiUploadFiles[1]" /><br />
</div>
<input type="button" id="addFile" value="添加文件" />
<br />
<input type="submit" value="上传" />
</form:form>
</body>
</html>
需要创建po类MultiFileUploadForm.java 代码如下
public class MultiFileUploadForm {
private String itemname;
private String description;
public String getItemname()
{
return itemname;
}
public void setItemname(String itemname)
{
this.itemname = itemname;
}
public String getDescription()
{
return description;
}
public void setDescription(String description)
{
this.description = description;
}
private List<MultipartFile> multiUploadFiles;
public List<MultipartFile> getMultiUploadFiles() {
return multiUploadFiles;
}
public void setMultiUploadFiles(List<MultipartFile> multiUploadFiles) {
this.multiUploadFiles = multiUploadFiles;
}
需要创建的controller类内容为:
@Controller
public class MultiFileUploadController {
@RequestMapping(value = "/uploadFiles", method = RequestMethod.POST)
public String uploadFile(
@ModelAttribute("multiFileUploadForm") MultiFileUploadForm multiFileUploadForm,
Model model) {
List<String> fileNames = new ArrayList<String>();
List<MultipartFile> requestFiles = new ArrayList<MultipartFile>();
System.out.println(multiFileUploadForm.getItemname());
System.out.println(multiFileUploadForm.getDescription());
requestFiles = multiFileUploadForm.getMultiUploadFiles();
if (null != requestFiles && requestFiles.size() > 0) {
for (MultipartFile mf : requestFiles) {
fileNames.add(mf.getOriginalFilename());
try {
mf.transferTo(new File("D:/Upload/"
+ mf.getOriginalFilename()));
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
model.addAttribute("files", fileNames);
}
for (String file : fileNames) {
System.out.println(file);
}
return "items/success";
}
最后
以上就是忧伤柚子为你收集整理的spring mvc 实现多文件上传,且同时包含表单信息的全部内容,希望文章能够帮你解决spring mvc 实现多文件上传,且同时包含表单信息所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复