使用ajax请求上传多个或者多个附件
jsp页面
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript" src="./js/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="./js/vue.js"></script>
<title>文件上传</title>
</head>
<body>
<h1>ajax异步上传文件</h1>
<input type="file" id="upload">
<button id="but"onclick="oneUpload()" >上传</button>--> <h1>ajax异步多文件上传</h1>
<form id="fileForm">
<input type="file" name="files" multiple="multiple" >
<input type="file" name="files" multiple="multiple" >
<input type="button" id="btn_add_file" value="上传附件" onclick="upload_files()">
</form>
<script type="text/javascript">
//单文件上传
function oneUpload() {
var file = document.getElementById("upload").files[0];
var formData = new FormData();
formData.append("file", file); $.ajax({
type: 'POST',
url: '${pageContext.request.contextPath}/oneUpload.do',
processData: false, //是否把上传的数据 处理为对象 默认为true
contentType: false, //避免让jquery 设置请求头有可能会破坏分隔符。 而使服务器不能正常解析文件
data:formData,
success: function (data) {
alert(data);
}
})
} //多文件上传
function upload_files(){
var formData = new FormData($("#fileForm")[0]);
$.ajax({
type: 'POST',
url:'${pageContext.request.contextPath}/allUpload.do',
processData: false, //是否把上传的数据 处理为对象 默认为true
contentType: false, //避免让jquery 设置请求头有可能会破坏分隔符。 而使服务器不能正常解析文件
data:formData,
success: function (data) {
alert(data);
}
})
} </script> </body>
</html>
java后端代码
package com.zjn.controller; import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID; 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 org.springframework.web.multipart.MultipartHttpServletRequest;
@Controller
public class AjaxUpload {
/**
* 单文件上传
*
* @param file
* @param request
* @return
*/
@RequestMapping("/oneUpload")
@ResponseBody
public String oneUploadFile(MultipartFile file, HttpServletRequest request) {
String path = "D://图片/img/";
//String data = sft.format(new Date());
String fileName = file.getOriginalFilename();
String lastStr = fileName.substring(fileName.lastIndexOf("."));
if (".txt".equals(lastStr)) { return "文件格式不正确";
}
;
File file1 = new File(path);
if (!file1.exists()) {
file1.mkdirs();
} String newName = UUID.randomUUID().toString().replace("-", "") + fileName;
try {
file.transferTo(new File(file1, newName));
String url = path + "/" + newName;
System.out.println(url);
return url;
} catch (IOException e) {
e.printStackTrace();
}
//文件存储路径 return "error";
} /**
* 多文件上传
*
* @param list
* @param request
* @return
*/
@RequestMapping("/allUpload")
@ResponseBody
public String allUploadFile(@RequestParam(value = "files") List<MultipartFile> list, HttpServletRequest request) {
System.out.println("list====="+list); String path = "D://图片/allImg/";
for (MultipartFile file : list) {
String fileName = file.getOriginalFilename();
String lastStr = fileName.substring(fileName.lastIndexOf("."));
;
File file1 = new File(path);
if (!file1.exists()) {
file1.mkdirs();
}
String newName = UUID.randomUUID().toString().replace("-", "") + fileName;
try {
file.transferTo(new File(file1, newName));
String url = path+ "/" + newName;
System.out.println(url);
} catch (IOException e) {
e.printStackTrace();
}
} //文件存储路径 return "success";
} }
使用ajax请求上传多个或者多个附件的更多相关文章
- SSM框架下,使用ajax请求上传文件(doc\docx\excel\图片等)
1.准备工作 1.1.添加上传必要jar包 <dependency> <groupId>commons-io</groupId> <artifactId> ...
- 使用FormData进行Ajax请求上传文件
Servlet3.0开始提供了一系列的注解来配置Servlet.Filter.Listener等等.这种方式可以极大的简化在开发中大量的xml的配置.从这个版本开始,web.xml可以不再需要,使用相 ...
- iframe和form表单实现ajax请求上传数据
form的target属性设置为iframe的name值时,表示提交到url后返回的数据显示到iframe区域 <form action="/upload.html" met ...
- koa2:通过Ajax方式上传文件,使用FormData进行Ajax请求
koa2通过表单上传的网上很多,但通过Ajax方式上传文件,使用FormData进行Ajax请求,不好找. 参考了这个用base64上传图片的例子.https://github.com/Yuki-Mi ...
- Ajax(form表单文件上传、请求头之contentType、Ajax传递json数据、Ajax文件上传)
form表单文件上传 上菜 file_put.html <form action="" method="post" enctype="multi ...
- 使用ajax提交form表单,包括ajax文件上传
前言 使用ajax请求数据,很多人都会,比如说: $.post(path,{data:data},function(data){ ... },"json"); 又或者是这样的aja ...
- 那些年,我们在Django web开发中踩过的坑(一)——神奇的‘/’与ajax+iframe上传
一.上传图片并在前端展示 为了避免前端整体刷新,我们采用ajax+iframe(兼容所有浏览器)上传,这样用户上传之后就可以立即看到图片: 上传前: 上传后: 前端部分html: <form s ...
- html5+php实现文件的断点续传ajax异步上传
html5+php实现文件的断点续传ajax异步上传 准备知识:断点续传,既然有断,那就应该有文件分割的过程,一段一段的传.以前文件无法分割,但随着HTML5新特性的引入,类似普通字符串.数组的分割, ...
- ajax 文件上传,ajax
ajax 文件上传,ajax 啥也不说了,直接上代码! <input type="file" id="file" name="myfile&qu ...
随机推荐
- LaTeX中的浮动体
浮动体代码及注释: 显示效果:
- sqli-labs-master less02-04
sql注入0-4关只存在注入方式的区别 第一关 ?id=1'--+ ' 第二关 ?id=1--+ 无 第三关 ?id=1')--+ ') 第四关 ?id=1")--+ ") 过程同 ...
- python语法元素的名称
变量 什么是变量? """ 变量是保存和表示数据值的一种语法元素,在程序中十分常见.顾名思义,变量的值是可以改变的,能够通过赋值(使用等号"=")方式 ...
- Gradle DSL method not found: 'google()'
报错信息如下:Gradle DSL method not found: 'google()'Possible causes:<ul><li>The project 'JustT ...
- 树莓派RTL8723BU_LINUX驱动安装
1.安装前准备:sudo apt-get -y update;sudo apt-get -y upgrade;sudo apt-get -y dist-upgrade;sudo apt-get ins ...
- 单调栈模板 POJ3250
上次二分st表大法失败以后的又一次尝试233333 封装,封装,封装!!!!!! #include <bits/stdc++.h> using namespace std; #define ...
- 老猿学5G:融合计费基于QoS流计费QBC的触发器Triggers
☞ ░ 前往老猿Python博文目录 ░ 一.引言 SMF中的功能体CTF在用户上网时达到一定条件就会向CHF上报流量,而CTF什么时候触发流量上报是由CTF中的触发器来控制的.在<老猿学5G: ...
- PyQt开发案例:结合QDial实现的QStackedWidget堆叠窗口程序例子及完整代码
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.案例说明 本案例是老猿在学习QStackedWidget中的一个测试案例,该案例使用QStack ...
- Docker下Python Flask+Redis+MySQL+RQ队列简单配置
本篇博文主要讲解Docker下使用RQ队列的通信配置,主要是网上的部分文章写的不太清楚,特写一篇 作者使用docker-compose.yml文件调度各部分文件Dockerfile,起初是这样写的 v ...
- Robot framework 环境搭建+图标处理
场景:随着现在项目各种赶工,很多时候界面上的功能还没有实现,这时就可以先对接口进行验证,提早发现一些和预期不一致的错误. Robot framework需要的几个知识点: 测试库:RF是大树,测试库就 ...