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

vue3 +spring boot文件上传

export const uploadFileRequest = (url, params) => {// 创建 FormData 对象const formData = new FormData();// 将参数添加到 FormData 中Object.keys(params).forEach(key => {formData.append(key, params[key]);});return axios({method: 'post',url: `${base}${url}`,data: formData,headers: {// 不要设置 Content-Type,让浏览器自动处理// 'Content-Type': 'multipart/form-data'},// 可选:添加上传进度监控onUploadProgress: progressEvent => {const percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total);console.log('上传进度:', percentCompleted);// 可以通过回调函数或状态管理库更新进度条}});
};

调用:

// 准备包含文件的参数
const fileInput = document.getElementById('fileInput');
const formData = {file: fileInput.files[0],        // 文件description: '这是一个测试文件',  // 其他表单字段userId: 123                      // 其他表单字段
};// 调用上传函数
uploadFileRequest('/api/upload', formData).then(response => {console.log('上传成功:', response.data);}).catch(error => {console.error('上传失败:', error);});

后端接收文件:

  1. 后端接收文件

    • 若使用 Spring Boot,需使用 @RequestParam 或 @RequestPart 注解接收文件:

      java

      @PostMapping("/upload")
      public String handleFileUpload(@RequestParam("file") MultipartFile file,@RequestParam("description") String description
      ) {// 处理文件和其他字段
      }
      

  2. 大文件上传优化

    • 考虑使用分块上传(Chunked Upload)或第三方库(如 tus-js-client)。
  3. 错误处理

    • 添加更详细的错误处理逻辑,例如:

      .catch(error => {if (error.response) {console.error('服务器响应错误:', error.response.status);} else if (error.request) {console.error('请求已发送,但没有响应');} else {console.error('请求错误:', error.message);}
      });
      

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

相关文章:

  • Compose Canvas 中添加手势控制
  • ​​信息系统项目管理师-项目范围管理 知识点总结与例题分析​​
  • Sa-Token全面深入学习指南
  • 敏捷开发的特点
  • 【 C++ 模板中 `template<typename T>` 与 `template<class T>` 的深度解析】
  • 基于STM32的超声波模拟雷达设计
  • SpringBoot 全面深入学习指南
  • 影视剧学经典系列-梁祝-《闲情赋》
  • 大模型笔记2:提示词工程
  • Spring Framework 7.0发布
  • 第十九章 Linux之Python定制篇——APT软件管理和远程登录
  • pyhton基础【10】容器介绍五
  • anaconda安装教程
  • 将CVAT点云格式标注格式由datumaro转换为kitti格式
  • 【IQA技术专题】-PSNR和SSIM
  • SylixOS armv7 任务切换
  • (二十八)深度解析领域特定语言(DSL)第六章——语法分析:巴科斯-诺尔范式
  • 【NOI 专题训练】概率期望
  • 【Canvas与卡通】天龙通宝
  • 分割数据集 - 足球运动员分割数据集下载
  • FTP 并不适合用在两个计算机之间共享读写文件 为什么
  • 实验绘图参考-0615版(自用)
  • 动手实践:LangChain流图可视化全解析
  • 超子说物联网-MQTT_笔记1---通过EMQX搭建MQTT服务器
  • FastAPI-MCP构建自定义MCP工具实操指南
  • 《一元线性回归:从基础到应用及模型处理》
  • 【Dify系列】【Dify 核心功能】【应用类型】【五】【工作流】
  • 包含30个APP客户端UI界面的psd适用于旅游酒店项目
  • VMware Workstation 添加PCI设备显卡直连
  • 深度学习入门知识