在我的项目中,我尝试使用 Apollo-REST-datasources 将 pdf 文件上传到特定 API。 有问题的 Api 具有以下 curl 命令来上传文件:
curl https://api.lexoffice.io/v1/vouchers/123456/files
-X POST
-H "Authorization: Bearer {accessToken}"
-H "Content-Type: multipart/form-data"
-H "Accept: application/json"
-F "file=@{PathToImage}"
到目前为止,我已经在互联网上广泛搜索了这个问题的答案,但这是我的请求,我相信这是文档所说的:
class LexOfficeApi2 extends RESTDataSource {
constructor() {
super();
this.baseURL = "https://api.lexoffice.io/v1/"
}
willSendRequest(request) {
request.headers.append("Content-Type", 'multipart/form-data');
request.headers.append("Accept", "application/json");
request.headers.append("Authorization", `Bearer ${LEXOFFICE}`);
}
async uploadInvoice() {
const formData = new FormData()
formData.append("file", fs.createReadStream('document.pdf'), 'document.pdf');
return await this.post(`/vouchers/123456/files`, formData)
}
}
我尝试上传位于服务器主根文件夹中的“document.pdf”。但是,每次我发送请求时,它都会失败,指出“文件为空”。
我做错了什么?