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

--- 前后端的文件交互 ---

使用formData 表单来储存

发送的文件,并通过ajax来向后端发送请求

let formData = new FormData();formData.append("sender", JSON.stringify(sender));files.forEach(file =>formData.append("files", file));$.ajax({url: "save/files",type: "POST",contentType : false,processData : false,data: formData,success: function (result){console.log(result);},error: function (err) {if (err.status == 406) {location.href = "login.html";return;}console.log(result.message);}});

后端从form表单中读取到文件数据

 @RequestMapping("/files")public int saveFiles(@NotNull @RequestParam("files") List<MultipartFile> files){//储存
}

使用base64编码来传递图片

将图片编码成base64字符串发送给后端,经过后端解码来储存

const input = document.querySelector('input[type="file"]');
input.addEventListener('change', (e) => {const file = e.target.files[0];if (file) {const reader = new FileReader();// 成功读取时的回调reader.onload = (event) => {const base64String = event.target.result; };// 开始读取文件(转换为 Base64)reader.readAsDataURL(file);}
});$.ajax({url: "save/files",type: "POST",data: baseStr: base64String,success: function (result){console.log(result);},error: function (err) {if (err.status == 406) {location.href = "login.html";return;}console.log(result.message);}});

后端对base64文件解码

//  编码格式 data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1public static String saveBase64ToFile(String base64Data, String saveDirectory) throws IOException {// 1. 分离MIME类型和Base64数据String[] parts = base64Data.split(",");String saveDirectory= "D:/saveFile";        String mimeInfo = parts[0];String base64Image = parts[1];//后缀可以通过parts[0] 通过映射关系得到  image/jpeg = jpgString fileName = UUID.randomUUID().toString() + "." + "jpg";Path filePath = Paths.get(saveDirectory, fileName);//将字符串解码为文件byte[] decodedBytes = Base64.getDecoder().decode(base64Image);// 6. 写入文件Files.write(filePath, decodedBytes);return fileName;
}

http://www.dtcms.com/a/462363.html

相关文章:

  • 打工人日报#20251009
  • 高并发秒杀系统设计:从理论到实践
  • Java 定时任务
  • 如何创建网站的二维码如何编辑 wordpress 主题
  • C++内存模型深度剖析从并发编程到原子操作的内存序语义
  • seo优化方法有哪些
  • 土动三轴试验机技术指标
  • 漳州正规网站建设公司wordpress google插件
  • 营销网站首页设计wordpress 博客主题
  • 鸿蒙路上的那些事:从初学者到资源创作者
  • 河北网站开发联系电话4a网站建设公司
  • 在 VS Code 中让整个工作区只读
  • 优秀网站菜单wordpress注册收不到邮件
  • 合肥网站建设pqiw目录网站做外链
  • 泉州自主建站模板网站设计费用价目表
  • 让水分子“导航”,突破蛋白–糖类分子对接难题
  • 在dify工作流中如何定义filename自动生成
  • asp 网站后台免费的企业网页制作网站
  • ILSpy下载和安装教程(附安装包,图文并茂)
  • 微信小程序-9-上滑加载更多和下拉刷新及小程序更新分享和转发
  • 【AES加密专题】1.AES的原理详解和加密过程
  • hello_servlet
  • 易拉罐和瓶子分类数据集 6059张图片,支持yolo,coco json,paschal voc xml格式,识别率可达92.5%,文末提供下载地址
  • 1 玩转Linux命令行:基础文件操作实战教程
  • 图观 流渲染打包服务器
  • 为什么只有中国做网站需要备案建站技术博客
  • 最好的微网站建设价格搜索引擎排名国内
  • 自动化测试中元素定位失败的解决策略
  • 心痛之窗:滑动窗口算法解爱与愁的心痛(洛谷P1614)
  • 鸿蒙HTTP请求老是发不出去?一文带你彻底排查所有坑!