Axios 中的文件上传(Upload File)方法

这篇具有很好参考价值的文章主要介绍了Axios 中的文件上传(Upload File)方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Axios 提供了多种上传文件(Upload File)的方法,适用于不同的上传场景。以下是其中几种常用的方法:

1. 使用 FormData 对象

FormData是一个用于创建表单数据的 API,可用于发送包含文件和其他表单数据的multipart/form-data请求。这是处理文件上传的常用方法。通过FormData对象,可以将文件数据添加到表单中,然后使用 Axios 的post或put方法发送请求。

示例

const axios = require('axios');

const fileInput = document.querySelector('#fileInput');
const file = fileInput.files[0];

const formData = new FormData();
formData.append('file', file);

axios.post('/upload', formData, {
  headers: {
    'Content-Type': 'multipart/form-data'
  }
}).then(response => {
  console.log('上传成功', response.data);
}).catch(error => {
  console.error('上传失败', error);
});

项目中使用

onChange={async (info: any) => {
                const formData = new FormData();
                const fileList = info.fileList;
                fileList.forEach((file: any) => {
                    formData.append("file", file.originFileObj);
                });
                localStorage.setItem('fileName', fileList[0].name)
                axios.post('http://xxx.xxx.x.xx:8000/upload', formData,
                    {
                        headers: {
                            'Content-Type': 'multipart/form-data'
                        }
                    })
                    .then(res => {
                        if (res) {

                        }
                    })
            }}

2. 使用 URL 参数

除了使用FormData,你还可以通过在 URL 参数中指定文件名的方式上传文件。这种方法适用于后端期望文件名直接出现在 URL 中的情况。

const axios = require('axios');

const fileInput = document.querySelector('#fileInput');
const file = fileInput.files[0];

axios.post('/upload', file, {
  params: {
    fileName: file.name
  }
}).then(response => {
  console.log('上传成功', response.data);
}).catch(error => {
  console.error('上传失败', error);
});

3. 使用 Base64 编码

这种方法将文件转换成 Base64 编码的字符串,然后通过普通的 JSON 格式发送给服务器。这种方式适用于较小的文件,因为 Base64 编码会增加数据大小。

const axios = require('axios');

const fileInput = document.querySelector('#fileInput');
const file = fileInput.files[0];

const reader = new FileReader();

reader.onload = function(event) {
  const base64Data = event.target.result.split(',')[1];

  axios.post('/upload', {
    file: base64Data
  }).then(response => {
    console.log('上传成功', response.data);
  }).catch(error => {
    console.error('上传失败', error);
  });
};

reader.readAsDataURL(file);

4.发送文件 Blob 对象

可以通过 CreateObjectURL 把文件对象转成 Blob URL,然后作为 Axios 请求的数据发送。

const file = document.getElementById('file').files[0];

const blobUrl = URL.createObjectURL(file);

axios.post('/upload', blobUrl, {
  headers: {
    'Content-Type': 'multipart/form-data'
  }  
});

使用说明文档

https://apifox.com/apiskills/axios-upload-file/文章来源地址https://www.toymoban.com/news/detail-860343.html

到了这里,关于Axios 中的文件上传(Upload File)方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端使用axios上传文件

    不用脚手架,引入vue,上传文件实现代码? 要在不使用脚手架的情况下,引入 Vue 并实现上传文件的功能,可以按照以下步骤进行: 在 HTML 文件中引入 Vue 和 Axios 库: 在 HTML 文件中定义 Vue 实例,并编写上传文件相关的代码: 在上述示例中,我们首先在 HTML 文件中定义了一

    2024年02月04日
    浏览(35)
  • axios手机端上传文件报错

    原因:由于手机加载图片需要耗时,请求直接超出了默认超时时间 设置超时时间timeout: 100000 ps -ef java -jar xxx.jar xxx.log

    2024年02月11日
    浏览(26)
  • Day19-异步请求-axios文件上传

    2024年02月11日
    浏览(27)
  • SpringBoot后端接收Axios上传的文件

    很多时候,我们项目开发的过程中,难免会遇到文件上传的需求 对于 SpringBoot 项目,我们该如何编写一个文件上传的接口呢? 这里我用的是 阿里云OSS 云服务器来作为上传文件的存储仓库,比起存储在电脑本地,云服务器更加便于管理、性能更好并且更加 安全 ,值得我们选

    2024年02月22日
    浏览(40)
  • antdesign+vue+ts自定义上传文件customRequest,显示进度条onProgress,axios请求中断axios.CancelToken。

    customRequest里面有一个data参数,data包含了对file文件上传状态的操作:例如:onSuccess、onProgress、onError等 和file文件。 改变文件上传状态:可以通过改变fileList里面file的status和respones。 踩坑: 1、在customRequest文件上传完成以后,会自动重新更新一下fileList文件。上传之前挂载在

    2023年04月25日
    浏览(28)
  • Vue+ElementUI+Axios实现携带参数的文件上传(数据校验+进度条)

    可以实现对上传文件的类型,大小进行数据校验,以及对上传文件所要携带的数据也进行的校验,也有文件上传进度的进度条。 一、Vue 结构部分 弹窗显示(文件上传框+文本框+单选按钮) 二、JS部分 1、数据和数据校验部分 2、方法部分 三、后端代码(Springboot) 1、接口层方

    2024年01月17日
    浏览(34)
  • 【hadoop】hdfs web界面上传文件报Couldn‘t upload the file

    F12打开控制台,看到上传文件接口用域名用的是node-1,解析不到对应的ip。 解决办法:修改windows的hosts文件。 hosts文件路径:C:WindowsSystem32driversetc 修改hosts文件的权限,右键鼠标选择属性。 然后添加hosts记录,保存。 重新上传文件:成功

    2024年02月07日
    浏览(26)
  • layui框架实战案例(21):layui上传的哪些事(layui.upload组件、 file文件域、php后台上传)

    在网速一般的情况下,大文件的上传通常需要一定时间的等待,而浏览器并不会醒目地告知你它正在努力地上传中,此时为了提升用户体验,我们可以通过该回调制作一个进度条。注: 该回调为 layui 2.5.5 新增 编辑时,读取数据库自动进行预览; 上传时,通过下面JQ代码进行

    2024年01月16日
    浏览(47)
  • 自己动手封装axios通用方法并上传至私有npm仓库:详细步骤与实现指南

    一、构建方法 确定工具库的需求和功能:在开始构建工具库之前,你需要明确你的工具库需要包含哪些方法及工具,以及这些工具或方法应该具备哪些功能。这有助于你更好地规划你的开发工作。 编写工具代码:使用你熟悉的前端框架(如React、Vue等)编写工具代码。确保你

    2024年04月14日
    浏览(37)
  • HadoopWEB页面上传文件报错Couldn‘t upload the file course_info.txt

    右键F2检查发现:文件上传PUT操作的IP地址是节点IP别名识别不到导致 解决方法:在WEB页面访问浏览器所在机器上面配置hosts映射地址(注意:配置的是浏览器访问的地址不是hadoop节点所在的映射地址,如果是云服务器就配置公网IP的映射地址)

    2024年02月06日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包