我发现示例的方式是:
const file = fs.readFileSync(filePath)
const formData = new FormData()
formData.append('userId', userId)
formData.append('file', file)
const options = {
method: 'post',
url: 'http://localhost:5000/uploadFile',
headers: {
'content-type': 'multipart/form-data'
},
data: formData
}
await axios(options).then(res => { console.log(res) }).catch(err => { console.log(err) })
但这不会将文件附加到python必需的request.files中。由于它没有作为文件附加,因此有关文件类型的信息也会丢失。
我也尝试使用以下方法。它确实将文件附加到request.files,但是内容不是正确的文件,我得到的只是一个文本字符串,假定是缓冲字符串输出。
const file = new File(fs.readFileSync(filePath), fileName, { type: 'text/csv' })
目的是保留文件类型信息,以便服务器可以正确保存文件。我想念什么?
请注意,请求不是直接从具有文件访问权限的nodejs发送的。