我是靠谱客的博主 忧伤柚子,最近开发中收集的这篇文章主要介绍spring mvc 实现多文件上传,且同时包含表单信息,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

上篇虽然可以实现上传多个文件,但是没有实现上传多文件的同时上传表单其他信息 利用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 实现多文件上传,且同时包含表单信息所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部