前端 JS 经典:上传文件

重点:multipart/form-data 后端识别上传类型必填

1. form 表单上传

html 复制代码
<!-- enctype="multipart/form-data" 这个必填 -->
<form 
    action="http://127.0.0.1:8080/users/avatar" 
    method="post" 
    enctype="multipart/form-data"
>
  <input name="name" type="text" />
  <input id="file" name="files" type="file" />
  <button>提交</button>
</form>
<script>
  const upload = document.getElementById("file");
  upload.onchange = function (value) {
    const fileList = value.target.files;
    console.log(fileList);
  };
</script>

2. js 上传

javascript 复制代码
// 后端上传接口
function updateAvatar(data) {
  return api({
    url: "/users/avatar",
    method: "post",
    // 设置请求头(重点)
    headers: {
      "Content-Type": "multipart/form-data",
    },
    data,
  });
}

let cutDown = (data) => {
  // 构建 form 表单;
  let formData = new FormData();
  let { file } = data;
  console.log(data);
  // file 参数命名和后端一致
  formData.append("file", file);
  updateAvatar(formData).then((res) => {
    console.log(res);
  });
};
相关推荐
颜酱5 小时前
Monorepo 架构以及工具选型、搭建
前端·javascript·node.js
oden5 小时前
ChatGPT不推荐你?7个GEO技巧让AI主动引用你的内容
前端
X***48966 小时前
JavaScript在Node.js中的Nx
javascript·node.js·vim
o***Z4486 小时前
JavaScript在Node.js中的内存管理
开发语言·javascript·node.js
李游Leo6 小时前
前端安全攻防指南:XSS / CSRF / 点击劫持与常见防护实践(含真实案例拆解)
前端·安全·xss
毕设源码-邱学长6 小时前
【开题答辩全过程】以 基于Java企业人事工资管理系统为例,包含答辩的问题和答案
java·开发语言
我命由我123456 小时前
微信开发者工具 - 模拟器分离窗口与关闭分离窗口
前端·javascript·学习·微信小程序·前端框架·html·js
E***q5396 小时前
Vue增强现实开发
前端·vue.js·ar
S***42806 小时前
JavaScript在Web中的Angular
前端·javascript·angular.js
4***14906 小时前
Vue代码规范详解
javascript·vue.js·代码规范