axios如何上传FormData

axios 上传 formData 很简单,请看下面的 demo:

vue


<template>
  <input type="file" @change="handleUpload" />
</template>

<script>
  import axios from "axios";
  export default {
    methods: {
      handleUpload(e) {
        var formData = new FormData();
        //e.target.files 获取fileList对象里的上传的file对象添加到formData里面
        formData.append("yourKey", e.target.files[0]);

        axios("yourUrl", formData, {
          //设置请求头
          headers: { "Content-Type": "multipart/form-data" },
        });
      },
    },
  };
</script>

react


import axios from "axios";
export default function Upload(){

const handleUpload = (e)=>{
    var formData = new FormData();
    //e.target.files 获取fileList对象里的上传的file对象添加到formData里面
    formData.append("yourKey", e.target.files[0]);

    axios("yourUrl", formData, {
        //设置请求头
         headers: { "Content-Type": "multipart/form-data" },
    });
}

    return <input onChange={handleUpload} />
}

要点

  • 所有 type 属性为 file 的 <input> 元素都有一个 files 属性,用来存储用户所选择的文件。e.target.files[0]获取 fileList 的第 1 个文件(file对象)。
  • 在 axios 请求头中设置 Content-Type 为 multipart/form-data 。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容