前端Ajax上传文件并发送请求

js

 //上传图片function uplodeFile() {var file=$('#Agreement_file')[0].files[0];console.log(file);var form = new FormData();form.append('img',file);$.ajax({type: 'POST',url: '/hotel/uplodeImg',data: form,processData: false, //告诉jquery要传输data对象contentType: false,   //告诉jquery不需要增加请求头对于contentType的设置success: function (data) {console.log(data);var imageURL=data.data;$('#pImg').attr('src',imageURL);}})}// 选择文件$(document).ready(function(data){$("#btn_choose_file").click(function(){$("#Agreement_file").trigger("click");});});

jsp

<div class="box-tools text-center"><img id="pImg" class="uplodeimg" src="" height="180px"><input id="Agreement_file" type="file" style="display:none" onchange="uplodeFile();" /><button id="btn_choose_file" type="button" class="btn bg-uplode">点击上传</button>
</div>

后端SpringBoot文件静态映射,存储并返回文件路径

controller

@RequestMapping("/uplodeImg")public Object uplodeImg(MultipartFile img){String uplodeImg = iHotelService.uplodeImg(img);return Result.init(200, "success", uplodeImg);}

service

    @Value("${file.rootPath}")String ROOT_PATH;//图片存放根目录下的子目录@Value("${file.sonPath}")String SON_PATH;//访问域名@Value("${file.localPath}")String localPath;@Overridepublic String uplodeImg(MultipartFile file) {if (file.isEmpty()) {throw new NullPointerException("文件为空");}// 设置文件上传后的路径String filePath = ROOT_PATH + SON_PATH;// 获取文件名后缀名String suffix = file.getOriginalFilename();String prefix = suffix.substring(suffix.lastIndexOf(".")+1);//为防止文件重名被覆盖,文件名取名为:当前日期 + 1-1000内随机数String fileName = UUID.randomUUID()+ "." +  prefix;//创建文件路径System.out.println("fileName: "+fileName);File dest = new File(filePath + fileName);// 检测是否存在目录if (!dest.getParentFile().exists()) {//假如文件不存在即重新创建新的文件已防止异常发生dest.getParentFile().mkdirs();}try {//transferTo(dest)方法将上传文件写到服务器上指定的文件file.transferTo(dest);//生成静态文件访问路径String filePathNew = localPath + fileName;System.out.println(filePathNew);return filePathNew;} catch (Exception e) {return dest.toString();}}

application.yml

file:rootPath: "E:"sonPath: "/takeout/img/"localPath: "http://localhost:8080/file/img/

配置静态文件映射

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {public void addResourceHandlers(ResourceHandlerRegistry registry) {String path = "E:\\takeout\\";//映射的本地路径registry.addResourceHandler("/file/**").addResourceLocations("file:" + path);}}

Ajax上传文件,后端返回文件访问路径相关推荐

  1. SpringBoot+El-upload实现上传文件到通用上传接口并返回文件全路径(若依前后端分离版源码分析)

    场景 SpringBoot+ElementUI实现通用文件下载请求(全流程图文详细教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...

  2. Ajax 文件上传(前后端完整代码,注意修改文件保存路径\访问路径)

    一.前端代码: ① html 代码: 注意:如需要选择多个文件,进行上传,Ⅰ.multiple="multiple" 不能省 Ⅱ.选择时是 Ctrl + 你所要选择的文件,不要分多 ...

  3. ajax传图片以及后台接收,前端ajax上传文件,图片,后端nodejs接收文件;

    前端ajax上传文件,图片,后端nodejs接收文件: 学习了nodejs,就想实现一下有进度条的文件上传,html 在作这个功能的时候遇到的问题前端 用普通的ajax没法实现文件上传,只能post, ...

  4. 阿里云OSS对象存储实现文件的上传,并返回访问路径

    话不多说,直接上干货 官方文档:https://help.aliyun.com/product/31815.html?spm=a2c4g.11186623.6.540.539d28bca7ZyUR 1 ...

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

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

  6. ajax上传文件表单,图片、文件无刷新上传,jquery.form.js的使用

    我们在进行一些web开发时,有时会需要上传文件,图片等等的功能.这篇文章记录一下我实现用ajax实现无刷新上传图片的方法. 我们先要了解一下ajax,在前后端分离的开发环境中ajax被广泛的用原来前后 ...

  7. struts2 ajax上传文件 file空_WordPress插件漏洞分析:WPDiscuz任意文件上传漏洞

    写在前面的话 就在不久之前,Wordfence的威胁情报团队在一款名叫wpDiscuz的Wordpress评论插件中发现了一个高危漏洞,而这款插件目前已有超过80000个网站在使用了.这个漏洞将允许未 ...

  8. springboot使用ajax上传文件

    SpringBoot使用Ajax上传文件 接上一个上传文件操作 上次使用的是from表单进行提交 这次我们使用ajax进行提交 地址在这儿:springboot上传文件 上次controller层已经 ...

  9. 前端通过ajax上传文件到七牛云

    1. 从服务端获取七牛云上传的token,生成token参考官方文档https://developer.qiniu.com/kodo/1208/upload-token 2. 在七牛云文档查找上传的存 ...

最新文章

  1. python seaborn 热图 值对应颜色_Python数据分析之Seaborn(热图绘制)
  2. github上的Lua in Erlang
  3. 剑指Offer #10 矩形覆盖(问题分析)
  4. mysql截取栏目字符_mysql截取小数点后1位
  5. 阿里云PolarDB重大更新:两大技术突破,传统数据库一键迁移上云
  6. struts1(转)
  7. cnvd与cnnvd区别_漏洞都是怎么编号的CVE/CAN/BUGTRAQ/CNCVE/CNVD/CNNVD
  8. 新人如何通过小红书赚第一桶金?
  9. 面向对象之多态【向上转型与向下转型】
  10. 龙架构(LoongArch)赋能众享链网,相关产品已完成适配
  11. 使用imagick将PDF转换成图片时报Fatal error: Uncaught exception 'ImagickException' with message 'FailedToExecute
  12. 流程内耗的雾霾几时休?
  13. QQ如何开通在线客服
  14. iss信息服务器,配置iss服务器
  15. Activiti流程定义缓存源码分析8-流程缓存自定义原理
  16. 游戏开发,策划文档入门指南
  17. 联想IBM笔记本R61I 驱动下载及安装方法 for XP
  18. 14大管理方法工具(zt)
  19. 用计算机模拟进化论,意识并不神秘,电脑模拟的大脑居然产生意识
  20. 他去数了纽约街道上的口香糖渍,竟发现一道贫富鸿沟

热门文章

  1. 人生路上陪你到终的佛心慧语
  2. 计算机学校吊牌,京东电脑数码,开了一所「玩校」!
  3. IDEA官网进不去解决方法
  4. 物联网卡分地区吗?物联网卡是否要交“漫游费”
  5. 联想小新15计算机在哪里,买定离手 后悔没处走?—联想小新15 2020 极简测试
  6. 多项式多点求值与快速插值
  7. Android隐藏底部虚拟导航栏及系统状态栏终极方案
  8. 猪肉涨价后的十条经典语录
  9. python中deepcopy_如何在Python中“覆盖”deepcopy?
  10. Y9000P 联想锁屏win11 关闭