java ajax动态上传多个文件
后端这么写
package cn.com.dzqc.controller;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import cn.com.dzqc.util.MyAjaxResult;
@Controller
@RequestMapping("/apply")
public class ApplyController {
@RequestMapping("/toapply")
public String toapply() {
return "apply";
}
@RequestMapping(value="/apply",produces = "application/json")
@ResponseBody
public MyAjaxResult apply(HttpServletRequest request, Integer userId,String newUserName,
String newUserPhone,String code,String remarks,
@RequestParam(value="zj") MultipartFile[] zj,
@RequestParam(value="sfzzm") MultipartFile sfzzm,
@RequestParam(value="sfzfm") MultipartFile sfzfm) {
System.out.println("***********************************");
System.out.println("一般参数:"+userId);
System.out.println("一般参数:"+newUserName);
System.out.println("一般参数:"+newUserPhone);
System.out.println("一般参数:"+code);
System.out.println("一般参数:"+remarks);
System.out.println("文件数组:"+zj);
System.out.println("单个文件:"+sfzzm);
System.out.println("单个文件:"+sfzfm);
System.out.println("***********************************");
if(zj!=null) {
System.out.println("文件数组长度:"+zj.length);
}
return MyAjaxResult.success("上传成功");
}
}
前端这么写(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>apply</title>
<script type="text/javascript" src="${path}/resources/js/jquery-3.2.1.js"></script>
</head>
<body>
<form action="" method="post">
新户主姓名:<input type="text" name="newUserName" id="username" value="name"><br>
新户主手机:<input type="text" name="newUserPhone" id="phone" value="phone"><br>
验证码:<input type="text" name="code" id="code" value="code"><br>
备注:<input type="text" name="remarks" id="remarks" value="remarks"><br>
<input type="hidden" name="userId" id="userId" value="1"><br>
身份证正面:<input type="file" name="sfzzm" id="sfzzm"><br>
身份证反面:<input type="file" name="sfzfm" id="sfzfm"><br><br>
其他证件:<span id="zj">
<input type="file" name="zj" class="zj">
<input type="file" name="zj" class="zj">
</span><a id="add" style="cursor:pointer">添加文件</a>
<br>
<input type="button" id="submit" value="提交">
</form>
<script type="text/javascript">
$(function(){
$("#submit").click(function(){
var formData = new FormData();
formData.append("newUserName",$("#username").val());
formData.append("newUserPhone",$("#phone").val());
formData.append("userId",$("#userId").val());
formData.append("remarks",$("#remarks").val());
formData.append("code",$("#code").val());
formData.append('sfzzm',document.getElementById("sfzzm").files[0]);
formData.append('sfzfm',document.getElementById("sfzfm").files[0]);
var filess=document.getElementsByName('zj');
console.log(document.getElementById("sfzfm").files[0]);
for(var i=0;i<filess.length;i++){
console.log(filess[i]);
formData.append('zj',filess[i].files[0]);
}
$.ajax({
url : "${path}/apply/apply",
type : 'POST',
data : formData,
processData : false,
contentType : false,
cache: false
}).done(function(res) { //回调函数
console.log(res)
}).fail(function(res) {
console.log(res)
});
})
////动态添加文件
$("#add").click(function(){
console.log("2")
$("#zj").append("<input type='file' name='zj' class='zj'>");
})
})
</script>
</body>
</html>
提交
后端
评论区
请写下您的评论...
猜你喜欢
blog
java HttpClients上传文件
工具
2156
服务端(接受文件) /** *上传文件接口 *@paramtype *@return */ @RequestMapping(value="/upFile",method
blog
java使用minio上传文件
minio
2657
创建buckets
创建serviceaccounts
java上传文件
maven依赖:
dependency
groupIdio.minio/groupId
blog
java使用FTP上传文件
工具
2673
pom依赖dependencygroupIdcommons-net/groupIdartifactIdcommons-net/artifactIdversion3.6/version/dependencyFTP服务类packageclub.jiajiajia.bulider.service;importjava.io.IOException;importjava.io.InputStream;im
java springboot
1726
涉及知识点:java动态编译,java反射,io流,java文件操作,输入输出重定向,多线程与线程安全,mysql数据库设计等,理解起来难度较高。下面是我自己设计的几个问题,和一些测试数据。排序问题
blog
springboot上传文件与回显
框架
2239
springboot上传文件与回显资源映射路径配置:packagecom.dzqc.yx.controller
blog
java静态代理
java基础
3107
java静态代理示例packageclub.jiajiajia.test.staticproxy;publicinterfaceBuyHouse{voidbuyHosue();//买房子
blog
java浏览器下载文件显示文件大小和进度
工具
2815
java代码response.setHeader("Content-Length",""+file.length());
blog
java动态编译技术原理分析
其他
4365
1.动态编译技术从JDK1.6开始引入了用Java代码重写的编译器接口,使得我们可以在运行时编译Java源码,然后用类加载器进行加载,让Java语言更具灵活性,能够完成许多高级的操作。2.本次要实现
最新发表
归档
2018-11
12
2018-12
33
2019-01
28
2019-02
28
2019-03
32
2019-04
27
2019-05
33
2019-06
6
2019-07
12
2019-08
12
2019-09
21
2019-10
8
2019-11
15
2019-12
25
2020-01
9
2020-02
5
2020-03
16
2020-04
4
2020-06
1
2020-07
7
2020-08
13
2020-09
9
2020-10
5
2020-12
3
2021-01
1
2021-02
5
2021-03
7
2021-04
4
2021-05
4
2021-06
1
2021-07
7
2021-08
2
2021-09
8
2021-10
9
2021-11
16
2021-12
14
2022-01
7
2022-05
1
2022-08
3
2022-09
2
2022-10
2
2022-12
5
2023-01
3
2023-02
1
2023-03
4
2023-04
2
2023-06
3
2023-07
4
2023-08
1
2023-10
1
2024-02
1
2024-03
1
2024-04
1
2024-08
1
标签
算法基础
linux
前端
c++
数据结构
框架
数据库
计算机基础
储备知识
java基础
ASM
其他
深入理解java虚拟机
nginx
git
消息中间件
搜索
maven
redis
docker
dubbo
vue
导入导出
软件使用
idea插件
协议
无聊的知识
jenkins
springboot
mqtt协议
keepalived
minio
mysql
ensp
网络基础
xxl-job
rabbitmq
haproxy
srs
音视频
webrtc
javascript
加密算法
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。