和单个上传文件基本相同,就是需要在后台控制器中,用数组来接收 jsp页面提交过来的file数据。

也分为三个部分演示。

一、jsp

  

<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2019/8/12
Time: 14:32
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>多文件上传</title>
</head>
<%-- 多文件上传 jsp 部分
1.在form 标签中定义属性 enctype="multipart/form-data"
2.在上传的input中定义属性 multiple="multiple" --%>
<body>
<form action="../test" method="post" enctype="multipart/form-data">
<div>上传文件:<input type="file" name="file" multiple="multiple"></div>
<div> <input type="submit" value="上传" /> </div>
</form>
</body>
</html>

二、后台控制器

package com.aaa.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
/*
*
* 多文件上传 1.jsp 2.后台控制层
*
* 将接受的 file 属性 定义成一个数组
* 2.1@RequestParam("file")MultipartFile [] files
*
* 2.2 通过for循环 将得到的结果 便利出来。
* */ @Controller
public class TestController {
@RequestMapping("/test")
public String test(@RequestParam("file")MultipartFile [] files, Model model, HttpServletRequest request) throws IOException { for (MultipartFile file:files
) { if (!file.isEmpty()){
//获得上传的目标位置
String path = request.getSession().getServletContext().getRealPath("/static/upload"); //目标文件的对象
String fileName = file.getOriginalFilename(); File file1 = new File(path + "/" + fileName); //父级目录 不在 就创建一个
if (!file1.getParentFile().exists()){
file1.mkdirs();
} //数据库没有的文件 才上传
if (!file1.exists()){
file.transferTo(file1);
model.addAttribute("file",fileName);
}
}else {
model.addAttribute("file", "上传文件为空");
}
}
return "view/ok1";
}
}

三、接收数据的jsp页面。

<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2019/8/12
Time: 14:45
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>接收数据</title>
</head>
<body>
上传的文件:${file}
</body>
</html>

from 表单上传多个文件?的更多相关文章

  1. 文件的上传(1)(表单上传和ajax文件异步上传)

    文件的上传(表单上传和ajax文件异步上传) 项目中用户上传总是少不了的,下面就主要的列举一下表单上传和ajax上传!注意: context.Request.Files不适合对大文件进行操作,下面列举 ...

  2. 文件的上传(表单上传和ajax文件异步上传)

    项目中用户上传总是少不了的,下面就主要的列举一下表单上传和ajax上传!注意: context.Request.Files不适合对大文件进行操作,下面列举的主要对于小文件上传的处理! 资源下载: 一. ...

  3. 普通文件的上传(表单上传和ajax文件异步上传)

    一.表单上传: html客户端部分: <form action="upload.ashx" method="post" enctype="mul ...

  4. Linux 基础命令-CURL 表单上传文件

    CURL -F, --form <name=content> (HTTP) This lets curl emulate a filled-in form in which a user ...

  5. 一般处理程序上传文件(html表单上传、aspx页面上传)

    html 表单上传文件        一般处理程序由于没有 apsx 页面的整个模型和控件的创建周期,而比较有效率.这里写一个用 html 表单进行文件上传的示例.        1. 表单元素选用 ...

  6. django 基于form表单上传文件和基于ajax上传文件

    一.基于form表单上传文件 1.html里是有一个input type="file" 和 ‘submit’的标签 2.vies.py def fileupload(request ...

  7. java模拟表单上传文件,java通过模拟post方式提交表单实现图片上传功能实例

    java模拟表单上传文件,java通过模拟post方式提交表单实现图片上传功能实例HttpClient 测试类,提供get post方法实例 package com.zdz.httpclient; i ...

  8. Express下使用formidable实现POST表单上传文件并保存

    Express下使用formidable实现POST表单上传文件并保存 在上一篇文章中使用formidable实现了上传文件,但没将它保存下来. 一开始,我也以为是只得到了文件的相关信息,需要用fs. ...

  9. 巨蟒python全栈开发django11:ajax&&form表单上传文件contentType

    回顾: 什么是异步? 可以开出一个线程,我发出请求,不用等待返回,可以做其他事情. 什么是同步? 同步就是,我发送出了一个请求,需要等待返回给我信息,我才可以操作其他事情. 局部刷新是什么? 通过jq ...

随机推荐

  1. 1091. Tmutarakan Exams

    1091. Tmutarakan Exams Time limit: 1.0 secondMemory limit: 64 MB University of New Tmutarakan trains ...

  2. How many integers can you find(hdu1796)

    How many integers can you find Time Limit: 12000/5000 MS (Java/Others)    Memory Limit: 65536/32768 ...

  3. [opencv]使用g++编译opencv程序演示

    gcc/g++ 编译命令 1. gcc -E source_file.c -E,只执行到预编译.直接输出预编译结果. 2. gcc -S source_file.c  -S,只执行到源代码到汇编代码的 ...

  4. CSS基础 华为渐变色产品列表 综合实战

    华为网页链接:https://www.huawei.com/cn/?ic_medium=direct&ic_source=surlent html代码部分: <div class=&qu ...

  5. Dom 键盘事件以及实战案例

    键盘事件 //键盘操作 //1.某键盘按下执行的操作 document是对文档进行触发 document.onkeyup = function(){ console.log('你好') } docum ...

  6. 解构插槽 Prop

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <link rel ...

  7. MongoDB_安装、配置、连接(五)

    MongoDB 是跨平台的,既可以在 Linux系统下安装,也可以在Windows 系统.MacOS系统下安装,本节主要介绍如何在 Linux 系统下安装 MongoDB. windows安装:htt ...

  8. 在CentOS 7.6 以 kubeadm 安装 Kubernetes 1.15 最佳实践

    前言 Kubernetes作为容器编排工具,简化容器管理,提升工作效率而颇受青睐.很多新手部署Kubernetes由于"scientifically上网"问题举步维艰,本文以实战经 ...

  9. nefu120梅森素数

    #include<iostream> #include<cstdio> using namespace std; typedef long long ll; const int ...

  10. Centos7安装erlang以及RabbitMQ Centos启动rabbitmq

    本文使用版本:  rabbitmq-server-3.8.3-1.el7.noarch.rpm   Centos7  erlang  22.3.1 在线安装 yum install esl-erlan ...