reactjs - 文件上传和下载 JavaScript
问题描述
编辑
希望有人能澄清我遇到的这个问题:
我想以二进制格式将文件存储在后端,并在获取它们并将它们转换为文件的原始状态后,我认为我的代码有问题,我正在使用 HTML 上传
这就是我将二进制数据发送到后端的方式:
const handleSubmit = async file => {
let formData = new FormData()
formData.append('file', file)
try {
const res = await postInvoice(uuid, formData)
console.log(res)
setLoadingInvoice(false)
setState({
fileList: [],
attachments: [],
filesConverted: [],
})
}
}
**edit with the api call, only missing hte url part which is in a different file**
export const postInvoice = async (id, data) => {
return await request
.post(BRattachments().post(id))
.send(data)
.set(getHeaders())
}
这就是我尝试下载 te bianrry 数据的方式:
const handleDownload = async value => {
try {
const res = await getInvoice(value.id)//api call
const file = new Blob([response], {
type: res.type,
})
saveAs(file, value.id + '.' + res.extension)//using save as to save import saveAs from 'file-saver'
}
}
**edited,this is the API CALL,I have them groued in a different file**
export const getInvoice = async ref => {
return await request
.get(BRattachments().getAll(ref))
.send()
.set(getHeaders())
.responseType('blob')
}
问题是,每次我尝试下载任何保存的文件时,都会出现问题,使用 XLS 我只在文件中看到空值,使用 PNG 它说文件不是 PNG,等等。
希望有人能澄清我如何下载二进制文件并将其转换为可下载的文件。
谢谢
解决方案
推荐阅读
- kotlin - 相当于 Kotlin 中 C# 的 Semaphore/SemaphoreSlim?
- html - 在 Angular 中,有没有办法在页面加载时更改某个变量的值?
- c++ - CMake - clang++ 无法编译简单的测试程序 Ubuntu 18.04
- python - PYMONGO:无法从数据库中检索数据
- visual-studio - Visual Studio 2017 为新的 F# .Net 核心项目创建 System.ValueTuple (4.3.1) 的无效 Nuget 引用?
- javascript - 如何一键过滤json数组中的对象
- python - 在Kivy中如何通过该功能实现到新Screen的过渡?
- webpack - 为 npm 打包 Vue 组件
- coldfusion - ColdFusion 中的异步表单
- java - 按属性分组对象列表并将其他剩余属性设置为不同的对象列表:Java 8 流和 Lambda