广告位联系
返回顶部
分享到

SpringMVC实现多文件上传方法

java 来源:互联网搜集 作者:秩名 发布时间:2019-11-03 17:37:05 人浏览
摘要

1)创建工程并导入JAR包 2)创建多文件选择页面 在 WebContent 目录下创建 JSP 页面 multiFiles.jsp,在该页面中使用表单上传多个文件,具体代码如下: %@ page language=java contentType=text/html; charset=UTF-8 pageEncoding=UTF-8%!DOCTYPE html PUBLI

1)创建工程并导入JAR包




2)创建多文件选择页面

在 WebContent 目录下创建 JSP 页面 multiFiles.jsp,在该页面中使用表单上传多个文件,具体代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
 <form action="${pageContext.request.contextPath }/multifile"
  method="post" enctype="multipart/form-data">
  选择文件1:<input type="file" name="myfile"><br>
  文件描述1:<input type="text" name="description"><br />
  选择文件2:<input type="file" name="myfile"><br>
  文件描述2:<input type="text" name="description"><br />
  选择文件3:<input type="file" name="myfile"><br>
  文件描述3:<input type="text" name="description"><br />
  <input type="submit" value="提交">
 </form>
</body>
</html>

3)创建POJO类

package pers.zhang.pojo;
import java.util.List;
import org.springframework.web.multipart.MultipartFile;
public class MultiFileDomain {
 private List<String> description;
 private List<MultipartFile> myfile;
  
 public List<String> getDescription() {
 return description;
 }
 public void setDescription(List<String> description) {
 this.description = description;
 }
 public List<MultipartFile> getMyfile() {
 return myfile;
 }
 public void setMyfile(List<MultipartFile> myfile) {
 this.myfile = myfile;
 }
  
 
}

4)创建多文件上传处理方法

/**
* 多文件上传
*/
@RequestMapping("/multifile")
public String multiFileUpload(@ModelAttribute MultiFileDomain multiFileDomain,HttpServletRequest request) {
 String realpath = request.getServletContext().getRealPath("uploadfiles");
 File targetDir = new File(realpath);
 if (!targetDir.exists()) {
  targetDir.mkdirs();
 }
 List<MultipartFile> files = multiFileDomain.getMyFile();
 for (int i = 0; i < files.size(); i++) {
  MultipartFile file = files.get(i);
  String fileName = file.getOriginalFilename();
  File targetFile = new File(realpath, fileName);
  // 上传
  try {
   file.transferTo(targetFile);
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 logger.info("成功");
 return "showMulti";
}

5)创建成功显示页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
 <table>
  <tr>
   <td>详情</td>
   <td>文件名</td>
  </tr>
  <!-- 同时取两个数组的元素 -->
  <c:forEach items="${multiFileDomain.description}" var="description"
   varStatus="loop">
   <tr>
    <td>${description}</td>
    <td>${multiFileDomain.myfile[loop.count-1].originalFilename}</td>
   </tr>
  </c:forEach>
  <!-- fileDomain.getMyfile().getOriginalFilename() -->
 </table>
</body>
</html>

6)测试文件上传



版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 : https://blog.csdn.net/cold___play/article/details/102874159
相关文章
  • SpringBoot自定义错误处理逻辑介绍

    SpringBoot自定义错误处理逻辑介绍
    1. 自定义错误页面 将自定义错误页面放在 templates 的 error 文件夹下,SpringBoot 精确匹配错误信息,使用 4xx.html 或者 5xx.html 页面可以打印错误
  • Java实现手写一个线程池的代码

    Java实现手写一个线程池的代码
    线程池技术想必大家都不陌生把,相信在平时的工作中没有少用,而且这也是面试频率非常高的一个知识点,那么大家知道它的实现原理和
  • Java实现断点续传功能的代码

    Java实现断点续传功能的代码
    题目实现:网络资源的断点续传功能。 二、解题思路 获取要下载的资源网址 显示网络资源的大小 上次读取到的字节位置以及未读取的字节
  • 你可知HashMap为什么是线程不安全的
    HashMap 的线程不安全 HashMap 的线程不安全主要体现在下面两个方面 在 jdk 1.7 中,当并发执行扩容操作时会造成环形链和数据丢失的情况 在
  • ArrayList的动态扩容机制的介绍

    ArrayList的动态扩容机制的介绍
    对于 ArrayList 的动态扩容机制想必大家都听说过,之前的文章中也谈到过,不过由于时间久远,早已忘却。 所以利用这篇文章做做笔记,加
  • JVM基础之字节码的增强技术介绍

    JVM基础之字节码的增强技术介绍
    字节码增强技术 在上文中,着重介绍了字节码的结构,这为我们了解字节码增强技术的实现打下了基础。字节码增强技术就是一类对现有字
  • Java中的字节码增强技术

    Java中的字节码增强技术
    1.字节码增强技术 字节码增强技术就是一类对现有字节码进行修改或者动态生成全新字节码文件的技术。 参考地址 2.常见技术 技术分类 类
  • Redis BloomFilter布隆过滤器原理与实现

    Redis BloomFilter布隆过滤器原理与实现
    Bloom Filter 概念 布隆过滤器(英语:Bloom Filter)是1970年由一个叫布隆的小伙子提出的。它实际上是一个很长的二进制向量和一系列随机映射
  • Java C++算法题解leetcode801使序列递增的最小交换次

    Java C++算法题解leetcode801使序列递增的最小交换次
    题目要求 思路:状态机DP 实现一:状态机 Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 class Solution { public int minSwap(int[] nums1, int[] nums2) { int n
  • Mybatis结果集映射与生命周期介绍

    Mybatis结果集映射与生命周期介绍
    一、ResultMap结果集映射 1、设计思想 对简单的语句做到零配置,对于复杂一点的语句,只需要描述语句之间的关系就行了 2、resultMap的应用场
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计