1.html部分实现代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>文件上传</title>
</head>
<body>
<form id= "uploadForm">
<p >指定文件名: <input type="text" name="filename" value= ""/></p >
<p >上传文件: <input type="file" name="file1" id="file1" multiple="multiple" /></p>
<p >上传文件: <input type="file" name="file2" id="file2" /></p>
<p >上传文件: <input type="file" name="file3" id="file3" /></p>
<input type="button" value="上传" onclick="doUpload()" />
</form>
<script type="text/javascript" src="lib/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="lib/layer/2.4/layer.js"></script>
<script type="text/javascript" src="js/common.js"></script>
<script type="text/javascript">
//获取token
var token = parent.window.document.getElementById("token").value; function doUpload() {
var formData = new FormData();
formData.append("token", token);
formData.append("file1", $('#file1')[0].files[0]);
formData.append("file2", $('#file2')[0].files[0]);
formData.append("file3", $('#file3')[0].files[0]);
$.ajax({
url: 'bookController/uploadMult' ,
type: 'post',
data: formData,
cache: false,
processData: false,
contentType: false,
async: false
}).done(function(res) { }).fail(function(res) { });
} </script>
</body>
</html>

2.后台部分:

多文件上传方式处理:

    @RequestMapping(value = "/uploadMult", method = RequestMethod.POST)
@ResponseBody
public String uploadMult(HttpServletRequest request) {
// 转型为MultipartHttpRequest:
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
// 获得文件:
List<MultipartFile> files = multipartRequest.getFiles("file1");
List<MultipartFile> files2 = multipartRequest.getFiles("file2");
List<MultipartFile> files3 = multipartRequest.getFiles("file3"); if (files.isEmpty()) {
return "false";
} String path = "F:/test"; for (MultipartFile file : files) {
String fileName = file.getOriginalFilename();
int size = (int) file.getSize();
System.out.println(fileName + "-->" + size); if (file.isEmpty()) {
return "false";
} else {
File dest = new File(path + "/" + fileName);
if (!dest.getParentFile().exists()) { // 判断文件父目录是否存在
dest.getParentFile().mkdir();
}
try {
file.transferTo(dest);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "false";
}
}
}
return "true";
}

单个文件上传方式处理:

    @RequestMapping(value = "/upload", method = RequestMethod.POST)
@ResponseBody
public String upload(@RequestParam("file") MultipartFile file, HttpServletRequest request) {
String contentType = file.getContentType();
String fileName = file.getOriginalFilename();
/*
* System.out.println("fileName-->" + fileName);
* System.out.println("getContentType-->" + contentType);
*/
String filePath = request.getSession().getServletContext().getRealPath("upload/");
try {
uploadFile(file.getBytes(), filePath, fileName);
} catch (Exception e) {
// TODO: handle exception
}
// 返回json
System.out.println("上传成功!");
return "true";
} public static void uploadFile(byte[] file, String filePath, String fileName) throws Exception {
File targetFile = new File(filePath);
if (!targetFile.exists()) {
targetFile.mkdirs();
}
FileOutputStream out = new FileOutputStream(filePath + fileName);
out.write(file);
out.flush();
out.close();
}

springboot文件上传参数配置:在application.properties文件中配置上传大小限制:

#文件上传
#Spring Boot 1.3.x或者之前 multipart.maxFileSize=800Kb
multipart.maxRequestSize=1000Mb #Spring Boot 1.4.x或者之后 spring.http.multipart.maxFileSize=100Mb
spring.http.multipart.maxRequestSize=1000Mb #maxFileSize 是单个文件大小
#maxRequestSize是设置总上传的数据大小

ajax实现文件上传,多文件上传,追加参数的更多相关文章

  1. 对Ajax连接的认识~为毛不能上传文件!!!

    最近做毕设的时候需要用到上传图片的功能,但是我的毕设全部的传输都是基于ajax的请求,百度了一圈发现TMD居然说ajax不能上传文件!!当时我就不乐意了啊,那难道其他人都用的是黑科技吗?!又来网上的大 ...

  2. springMvc 使用ajax上传文件,返回获取的文件数据 附Struts2文件上传

    总结一下 springMvc使用ajax文件上传 首先说明一下,以下代码所解决的问题 :前端通过input file 标签获取文件,通过ajax与后端交互,后端获取文件,读取excel文件内容,返回e ...

  3. ajax上传文件,并检查文件类型、检查文件大小

    1.使用ajaxfileupload.js的插件,但是对插件做了一处修改,才能够正常使用 修改的部分如下: uploadHttpData: function (r, type) { var data ...

  4. jQuery+php+ajax+PHPExcel实现上传excel文件导入数据库

            项目中需要批量导入数据,感觉这个需求以后也会经常用,必须总结分享下: 引入jquery的第三方表单插件: <scripttype="text/javascript&qu ...

  5. Ajax技术——带进度条的文件上传

    1.概述 在实际的Web应该开发或网站开发过程中,经常需要实现文件上传的功能.在文件上传过程中,经常需要用户进行长时间的等待,为了让用户及时了解上传进度,可以在上传文件的同时,显示文件的上传进度条.运 ...

  6. Ajax实现带进度条的文件上传

    Ajax实现带进度条的文件上传 文件上传页面运行效果 上传文件并显示进度条运行效果 代码如下; DiskFileItemFactory factory = new DiskFileItemFactor ...

  7. ajax +jsp+iframe无刷新上传文件[转]

    http://hi.baidu.com/zj360202/blog/item/f23e3711f929c774cb80c475.html ajax jsp 无刷新上传文件 2009-10-26 16: ...

  8. 【文件上传】文件上传的form表单提交方式和ajax异步上传方式对比

    一.html 表单代码 …… <input type="file" class="file_one" name="offenderExcelFi ...

  9. 服务器文档下载zip格式 SQL Server SQL分页查询 C#过滤html标签 EF 延时加载与死锁 在JS方法中返回多个值的三种方法(转载) IEnumerable,ICollection,IList接口问题 不吹不擂,你想要的Python面试都在这里了【315+道题】 基于mvc三层架构和ajax技术实现最简单的文件上传 事件管理

    服务器文档下载zip格式   刚好这次项目中遇到了这个东西,就来弄一下,挺简单的,但是前台调用的时候弄错了,浪费了大半天的时间,本人也是菜鸟一枚.开始吧.(MVC的) @using Rattan.Co ...

  10. ajax 提交所有表单内容及上传图片(文件),以及单独上传某个图片(文件)

    我以演示上传图片为例子: java代码如下(前端童鞋可以直接跳过看下面的html及js): package com.vatuu.web.action; import java.io.File; imp ...

随机推荐

  1. linux部署php网页

    liunx环境下运行php和传统的Java web程序不一样.我直接放在tomcat下竟然不行. 安装了php的一些环境,还是访问不了,原因是不支持https访问.没办法,还是得用tomcat,同时我 ...

  2. 泡泡一分钟:Perception-aware Receding Horizon Navigation for MAVs

    作为在空中抛掷四旋翼飞行器后恢复的第一步,它需要检测它使用其加速度计的发射.理想的情况下,在飞行中,加速度计理想地仅测量由于施加的转子推力引起的加速度,即.因此,当四旋翼飞行器发射时,我们可以检测到测 ...

  3. IoAllocateMdl,MmProbeAndLockPages的用法

    转载地址:https://blog.csdn.net/wdykanq/article/details/7752909 IoAllocateMdl,MmProbeAndLockPages的用法 第一,M ...

  4. Spring cloud微服务安全实战-6-9sentinel之熔断降级

    来讲一下降级规则 服务会互相调用,服务A会有一些服务之间的依赖. 假设服务D的响应时间变长了.A调用D就会卡住了. 熔断,某一个服务出现问题,会把服务拖死.如果A出现,会把依赖A的那些服务拖死. 主要 ...

  5. ES6深入浅出-13 Proxy 与 Reflect-3.Vue 3 将用 Proxy 改写

    如果说想打印出来年龄,但是有没有年龄的这个key值 把创建年龄写在一个按钮上面 通过一个事件来做. 点击创建年龄的按钮,给obj.age设置为18,但是页面的双向绑定并没有显示出来. 因为不响应式,为 ...

  6. log4j 异常时在日志文件里面显示空的。

    如下图所示,输入的时候不要写 e.getStackTrace() 一般情况下不会出问题,但有时候就会出问题 解决方案

  7. Qt编写气体安全管理系统4-通信协议

    一.前言 通信协议解析是整个系统的核心灵魂,绝大部分人做软硬件通信开发,第一步估计就是写demo将协议解析好,然后再慢慢写整个界面和操作流程等,在工业控制领域,modbus协议应用还是非常广泛的,这个 ...

  8. 聚类K-Means和大数据集的Mini Batch K-Means算法

    import numpy as np from sklearn.datasets import make_blobs from sklearn.cluster import KMeans from s ...

  9. LabWindows/CVI入门之第四章:库文件(转)

    按语: 在参考CVI参考书使用CVI生成动态库后,在另一工程中调用DLL ,编译通不过,后参考此文,豁然开朗. http://blog.sina.com.cn/s/blog_6373e9e60101b ...

  10. filebeat输出到kafka

    # cat filebeat.yml filebeat.inputs: - type: log enabled: true tail_files: true paths: - /data/www.ex ...