后端返回了application/octet-stream 前端怎么不下载文件 使用axios formData上传这个文件
时间: 2024-05-12 13:13:43 浏览: 320
FormData实现文件上传(前端+后端)
如果后端返回了 `application/octet-stream` 类型的数据,那么它很可能是二进制文件,比如图片或者压缩包等。在前端使用 `axios` 上传这个文件时,我们可以使用 `FormData` 对象来包装这个文件,并将其作为参数传递给 `axios` 的 `POST` 请求。
以下是一个示例代码,可以将一个二进制文件上传到后端:
```javascript
const file = ... // 从用户选择的文件 input 中获取文件对象
const formData = new FormData()
formData.append('file', file)
axios.post('/upload', formData).then(response => {
console.log('上传成功')
}).catch(error => {
console.error('上传失败', error)
})
```
在这个示例中,我们使用 `FormData` 对象将文件对象包装起来,并将其添加到 `formData` 中,然后将 `formData` 作为参数传递给 `axios.post()` 方法。在后端接收到这个请求时,可以通过读取请求体中的 `file` 参数来获取上传的文件内容。
需要注意的是,在使用 `FormData` 上传文件时,需要设置好请求头的 `Content-Type`,让它自动识别为 `multipart/form-data` 类型。如果你使用的是最新版的 `axios`,则无需手动设置 `Content-Type`,它会自动根据传入的参数类型来设置请求头。
阅读全文