from 表单上传多个文件?
和单个上传文件基本相同,就是需要在后台控制器中,用数组来接收 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)(表单上传和ajax文件异步上传)
文件的上传(表单上传和ajax文件异步上传) 项目中用户上传总是少不了的,下面就主要的列举一下表单上传和ajax上传!注意: context.Request.Files不适合对大文件进行操作,下面列举 ...
- 文件的上传(表单上传和ajax文件异步上传)
项目中用户上传总是少不了的,下面就主要的列举一下表单上传和ajax上传!注意: context.Request.Files不适合对大文件进行操作,下面列举的主要对于小文件上传的处理! 资源下载: 一. ...
- 普通文件的上传(表单上传和ajax文件异步上传)
一.表单上传: html客户端部分: <form action="upload.ashx" method="post" enctype="mul ...
- Linux 基础命令-CURL 表单上传文件
CURL -F, --form <name=content> (HTTP) This lets curl emulate a filled-in form in which a user ...
- 一般处理程序上传文件(html表单上传、aspx页面上传)
html 表单上传文件 一般处理程序由于没有 apsx 页面的整个模型和控件的创建周期,而比较有效率.这里写一个用 html 表单进行文件上传的示例. 1. 表单元素选用 ...
- django 基于form表单上传文件和基于ajax上传文件
一.基于form表单上传文件 1.html里是有一个input type="file" 和 ‘submit’的标签 2.vies.py def fileupload(request ...
- java模拟表单上传文件,java通过模拟post方式提交表单实现图片上传功能实例
java模拟表单上传文件,java通过模拟post方式提交表单实现图片上传功能实例HttpClient 测试类,提供get post方法实例 package com.zdz.httpclient; i ...
- Express下使用formidable实现POST表单上传文件并保存
Express下使用formidable实现POST表单上传文件并保存 在上一篇文章中使用formidable实现了上传文件,但没将它保存下来. 一开始,我也以为是只得到了文件的相关信息,需要用fs. ...
- 巨蟒python全栈开发django11:ajax&&form表单上传文件contentType
回顾: 什么是异步? 可以开出一个线程,我发出请求,不用等待返回,可以做其他事情. 什么是同步? 同步就是,我发送出了一个请求,需要等待返回给我信息,我才可以操作其他事情. 局部刷新是什么? 通过jq ...
随机推荐
- Linux Cgroups详解(一)
[转载]http://blog.chinaunix.net/uid-23253303-id-3999432.html Cgroups是什么? Cgroups是control groups的缩写,是Li ...
- DAGs with NO TEARS: Continuous Optimization for Structure Learning
DAGs with NO TEARS: Continuous Optimization for Structure Learning 目录 DAGs with NO TEARS: Continuous ...
- Chapter 11 Why Model ?
目录 11.1 Data cannot speak for themselves 11.2 Parametric estimators of the conditional mean 11.3 Non ...
- Chapter 3 Observational Studies
目录 概 3.1 3.2 Exchangeability 3.3 Positivity 3.4 Consistency First Second Fine Point 3.1 Identifiabil ...
- 《python-美藏篇》1.可迭代、迭代器与生成器
首先区分可迭代对象(Iterable).迭代器(Iterator) 可迭代对象:包含__iter__方法的对象为可迭代对象,如List.Tuple.Dictionary 迭代器:包含__iter__. ...
- Android开发 SeekBar(拖动条)的使用
SeekBar是Progress的子类,Progress主要用来显示进度,但是不能和用户互动,而SeekBar则可以供用户进行拖动改变进度值 实现拖动进度条并显示在文本中: <?xml vers ...
- vsconde launch.json配置 调试本地文件
{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing ...
- 初识python: 字典
使用数据字典,编写一个多级菜单: 需求:每一级可返回上级,可退出. 多级菜单 #!/user/bin env python # author:Simple-Sir # time:20180915 # ...
- nginx安装,手动源码安装
什么是Nginx? Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Ra ...
- Zuul的应用
一.介绍 注:Zuul中默认就已经集成了Ribbon负载均衡和Hystix熔断机制.但是所有的超时策略都是走的默认值,比如熔断超时时间只有1S,很容易就触发了. 二.依赖 <dependency ...