利用formData上传input选中的文件

本文详细介绍如何使用HTML的input标签上传文件,包括限制上传文件类型、允许多文件上传,以及如何利用FormData与axios进行文件流的获取与上传。涵盖前端文件上传的基本流程与技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<input id="my_text" type="file" accept="image/*" multiple>

accept属性来规定上传文件类型

multiple属性允许上传多个文件

如何获取input选中的文件流?

第一:获取input标签

let input = document.getElementById('my_input')

第二:通过files属性获取文件

input.files属性能得到已经选中的文件,input.files是一个数组

例子:选中两个文件

console.log(input.files)

第三:拿到文件,那么该如何上传呢?

利用FormData对象,一个XMLHttpRequest对象接口的api

const fd = new FormData

fd.append('file', input.files[0])

fd.append('file', input.files[1])

.......

FormData对象的方法

FormData接口的append() 方法 会添加一个新值到 FormData 对象内的一个已存在的键中,如果键不存在则会添加该键

FormData.set 和 append() 的区别在于,如果指定的键已经存在,FormData.set 会使用新值覆盖已有的值,而 append() 会把新值添加到已有值集合的后面

FormData.delete() 方法 会从 FormData对象中删除指定 key 和它对应的 value(s)。

formData.get(name);将要获取值的键名

 

第四:利用axios上传文件

axios({

url: 'http://'+window.location.hostname+'/api/'+ filePicture,

headers: {

        'Content-Type': 'multipart/form-data'

      },

data: fd, // 要上传的文件

method: 'POST',

})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值