SpringBoot使用Ajax上传文件

接上一个上传文件操作 上次使用的是from表单进行提交

这次我们使用ajax进行提交

地址在这儿:springboot上传文件

上次controller层已经写好了这次直接开写html

首先我们先写一下基本的html

第一行是用来存放我们上传完返回的信息的

<div id="fileUrl"></div>
<input type="file" id="file">
<input type="button" value="提交" onclick="uploadFile()">

写完之后我们写uploadFile()

这里我们使用jq

$("#file")[0]就是吧jq对象转换为js对象

我们获取files里面的第一个 这就是单个文件上传

多个文件上传那就是整个数组了 这个大家能理解吧

var file=$("#file")[0].files[0];
var formData = new FormData();
formData.append("file",file);

最后呢就是ajax进行提交 这个就比较简单了

$.ajax({type:"post",url:"/upload",processData: false,contentType:false,data:formData,success:function (msg) {$("#fileUrl").html(msg);}
})

说到ajax我们可以学习一下


属性(参数)

type 请求类型

url 请求地址

data 请求参数

dataType 返回的数据类型

context 参数作用 将回调里的this替换为context里对应的值

contentType 发送信息至服务器时内容编码类型默认值为"application/x-www-form-urlencoded"

xhr 需要返回一个 XMLHttpRequest 对象

options AJAX 请求设置

username HTTP 访问认证请求的用户名

password HTTP 访问认证请求的密码

async 默认设置下为true,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。

回调函数

success 成功函数

error 失败函数

complete(xhr, ts) 请求完成后回调函数 (请求成功或失败之后均调用)。

complete 当请求完成之后调用这个函数,无论成功或失败。传入 XMLHttpRequest 对象,以及一个包含成功或错误代码的字符串。


以上都是ajax常用的一些参数和回调函数

下面是完整的java和html代码

java代码

 SimpleDateFormat sdf=new SimpleDateFormat("/yyyy-MM-dd/");@PostMapping("/upload")public String file(MultipartFile file, HttpServletRequest request){String format =  sdf.format(new Date());String realPath = request.getServletContext().getRealPath("/img") + format;//创建文件夹路径File folder = new File(realPath);//如果文件夹已经不存在那么我们就创建一下if(!folder.exists()){folder.mkdirs();}String originalFilename = file.getOriginalFilename();String newName = UUID.randomUUID().toString() + originalFilename.substring(originalFilename.lastIndexOf("."));try {file.transferTo(new File(folder,newName));String url=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+"/img"+format+newName;return url;} catch (IOException e) {e.printStackTrace();}return "error";}

html代码

    <div id="fileUrl"></div><input type="file" id="file"><input type="button" value="提交" onclick="uploadFile()"><script>function uploadFile() {var file=$("#file")[0].files[0];var formData = new FormData();formData.append("file",file);$.ajax({type:"post",url:"/upload",processData: false,contentType:false,data:formData,success:function (msg) {$("#fileUrl").html(msg);}})}</script>

springboot使用ajax上传文件相关推荐

  1. Ajax上传文件,后端返回文件访问路径

    前端Ajax上传文件并发送请求 js //上传图片function uplodeFile() {var file=$('#Agreement_file')[0].files[0];console.lo ...

  2. 页面无刷新ajax上传文件--模拟iframe,超简单

    前段时间在解决ajax上传文件时折腾了好一阵.直接用$.post上传文本信息肯定是没有问题的.但是$.post直接上传图片是不可行的. 后来看到网上的一些解决方案,有现成的ajax上传文件的封装的方法 ...

  3. 上传html 0字节,HTML ajax 上传文件限制文件的类型和文件大小

    html js function getFileType(filePath){ //获取文件的后缀名 var startIndex = filePath.lastIndexOf(".&quo ...

  4. ajax上传文件 获取失败,Ajax上传文件/照片时报错TypeError :Illegal invocation的解决方法...

    本篇文章给大家带来的内容是关于Ajax上传文件/照片时报错TypeError :Illegal invocation的解决方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 问题 A ...

  5. php 通过ajax上传文件,php – 通过ajax上传文件

    我使用2个文件index.js,upload.php尝试通过ajax上传文件(img),如果成功附加到div uploadfile_show. 但它不起作用,几乎没有问题,下面是我的代码有什么建议吗? ...

  6. Django框架 之 Form表单和Ajax上传文件

    Django框架 之 Form表单和Ajax上传文件 浏览目录 Form表单上传文件 Ajax上传文件 伪造Ajax上传文件 Form表单上传文件 html 1 2 3 4 5 6 7 <h3& ...

  7. php+ajax上传文件

    直接上源代码 html页面 <!DOCTYPE html> <html> <head> <meta charset="UTF-8" > ...

  8. ajax上传 java,javaWeb中使用ajax上传文件

    javaWeb上传图片 上传文件所必要的两个jar包:commons-fileupload.jar.commons-io.jar. 核心代码: String withPath = req.getSer ...

  9. Ajax上传文件的cache、processdata、contentType属性以及FormData对象的总结

    Ajax上传文件的cache.processdata.contentType属性以及FormData对象的总结 前言:在之前的Ajax一次性上传多张图片并实现预览的博客中提到,如果要用 Ajax 上传 ...

最新文章

  1. 降维处理:PCA和LDA
  2. 使用Flow检查React,Redux和React-Redux的全面指南
  3. mac电脑配置java环境变量_教你在Mac系统中配置JAVA环境变量的方法
  4. JAVA之运算符优先级
  5. 如何用原型体现你的专业度?
  6. 三菱plc字高八位和低八位_三菱PLC如何传送高8位和低8位数据
  7. 昨晚第一次使用了 NUnit,方才发现它是个好东西,似乎好多好东西其实一直在身边,只是没有勇气去尝试而一直无法体会。...
  8. springboot项目执行controller方法时进入慢的问题
  9. 【前端安全】JavaScript防http劫持与XSS (转)
  10. python绘制折线图和散点图
  11. mysql rps和tps区别_并发虚拟用户、RPS、TPS的解读
  12. 成田机场坐access到品川_下了飞机看不懂日语?这篇干货告诉你从羽田/成田机场到东京市区怎样方便又省钱!...
  13. 职高学计算机考大学容易吗,男生读职高什么专业好 能不能考大学
  14. C# 后台GC 的前因后果
  15. 微型计算机基础理论——计算机中的数制及其应用
  16. 关于性能测试的这点事,值得收藏~
  17. [云原生专题-29]:K8S - 核心概念 - 名字空间/命名空间概念详解与主要操作案例
  18. Delphi中实现MDI子窗体(转)
  19. 一首歌曲,没有寻找到试听资源
  20. HTML的iframe使用

热门文章

  1. 微pe安装原版win10怎么装|wepe安装原版win10 1803教程
  2. PySide6 布局管理
  3. pytest文档25-conftest.py作用范围
  4. catia V5R21 32位打开大型装配体非常卡,亲测可用解决方案
  5. bullmind在线思维导图软件
  6. 小程序实现3D轮播图效果
  7. 表面散射 | Vol.5 基于图像的偏振反射率的采集与建模
  8. Android Q(10.0)上IMEI获取不到;Android Q(10.0)上OAID替代IMEI;OAID获取方式
  9. anaconda环境更改gcc版本并编译Pytorch3D 0.4.0
  10. 智能聊天机器人小黄鸡