当前位置: 首页 > news >正文

掌握前后端数据交互的3种核心方式

application/x-www-form-urlencoded格式

前端

export const userUpdateAvatarService = (avatarUrl) => {const params = new URLSearchParams();params.append('avatarUrl', avatarUrl);return request.patch('/user/updateAvatar', params, {headers: {'Content-Type': 'application/x-www-form-urlencoded'}});
}

后端

@PatchMapping("/updateAvatar")
public Result updatePic(@RequestParam@Pattern(regexp = "^(https?://)?([a-zA-Z0-9.-]+\\.[a-zA-Z]{2,})(:\\d+)?(/[^\\s]*)?\\.(jpg|jpeg|png|gif)$",message = "头像地址必须是有效的HTTP/HTTPS URL,且以.jpg、.jpeg、.png或.gif结尾") String avatarUrl) {userService.updateAvatar(avatarUrl);return Result.success();
}

JSON格式

前端

export const userUpdateAvatarService = (avatarUrl) => {return request.patch('/user/updateAvatar', { avatarUrl });
}

后端

public Result updatePic(@RequestBody Map<String, String> requestBody) {String avatarUrl = requestBody.get("avatarUrl");// 验证和业务处理
}

文件上传

multipart/form-data; boundary=----WebKitFormBoundaryxxxxxxxxxxx

后端

@PostMapping("/upload")public Result<String> upload(MultipartFile file) throws IOException {log.info("文件上传开始...");// 获取原始文件名String originalFilename = file.getOriginalFilename();log.info("原始文件名:{}", originalFilename);// 获取文件后缀String suffix = null;if (originalFilename != null) {suffix = originalFilename.substring(originalFilename.lastIndexOf("."));}// 新文件名 uuid+文件后缀String filename = UUID.randomUUID() + suffix;// 把文件的内容存储到本地磁盘上
//        file.transferTo(new File("C:\\Users\\Administrator\\Desktop\\files\\" + filename));String url = aliOssUtil.uploadFile(filename, file.getInputStream());log.info("文件上传成功:{}", url);return Result.success(url);}
http://www.dtcms.com/a/465010.html

相关文章:

  • 网络、主机安全扫描工具
  • 论文笔记 -《MUON IS SCALABLE FOR LLM TRAINING》
  • soular入门到实战(6) - soular+kanass+sward+postin实现sso单点登录
  • 建设农垦网站赣州网站制作
  • vue3 el-date-picker 日期选择器校验规则-选择日期范围不能超过七天
  • 【论文阅读】Debating with More Persuasive LLMs Leads to More Truthful Answers
  • Windows系统中部署GeoServer全流程
  • 成都专做婚介网站的公司温州做外贸网站
  • OpenWrt开发第13篇:OpenWrt上读取带USB接口的GPS设备信息
  • 公司如何建设网站首页品牌建设网站公司排名
  • MySQL的查询操作语法要点
  • 打工人日报#20251010
  • ARMv8系统的安全性(二):TrustZone架构如何重塑移动设备安全生态
  • Vivado 时序约束的完整作战地图(二)
  • 使用主流开发语言的项目如何一键生成SBOM文件?
  • Java常见业务场景之大量数据存储优化:从 Mysql 到 Redis Bitmap ,实现高效存储用户签到记录
  • 朝阳企业网站建设方案费用东莞公司注册
  • 光影魔术手_4.7.2.1192|win中文|图像修改编辑器|安装教程
  • c++ bug 记录(merge函数调用时错误地传入了vector对象而非迭代器。)
  • 珠海网站专业制作wordpress 折线图
  • css、dom 性能优化方向
  • 【大前端】Android Deep Link 技术详解与实践指南
  • Linux操作系统如何使用ISO镜像文件来搭建本地镜像源?
  • UMI 中使用qiankun问题记录
  • 演示和解读ChatGPT App SDK,以后Android/iOS App不用开发了?
  • Spring Boot 与 WebSocket:长连接掉线、心跳与消息广播的问题
  • 数琨创享:新能源行业标杆企业QMS质量管理平台案例
  • 如何用easyui做网站网站设计说明书5000字
  • 从MySQL到ClickHouse超大规模数据分析的架构迁移实践与性能对比
  • 架构图在什么网站可以做wordpress-saas