Business Central API V2上传日记账分录附件为空问题求助
解决Business Central API V2日记账分录附件上传损坏问题
问题出在你上传附件内容的方式上——attachmentContent端点不支持multipart/form-data格式的FormData,它需要直接接收文件的原始二进制数据。你当前用FormData包装并设置multipart/form-data头的做法,会导致API无法正确解析文件内容,最终生成空的损坏附件。
修正后的代码
把最后一段上传附件内容的代码替换成下面的版本:
// 直接上传二进制文件内容,无需FormData包装 const response = await firstValueFrom( this.businessCentralHttpService.patch( `companies(${bcCompanyId})/attachments(${attachment.id})/attachmentContent`, fileBlob, // 直接传入Blob对象作为请求体 { headers: { 'If-Match': '*', 'Content-Type': 'application/pdf', // 设置为文件实际的MIME类型 }, }, ), )
关键修改点
- 移除
FormData的包装:直接将fileBlob作为请求体发送,不需要用append包装成表单 - 调整
Content-Type头:设置为文件对应的MIME类型(比如PDF用application/pdf,图片用image/png等),而不是multipart/form-data - 保持
If-Match: *头:确保可以覆盖现有附件内容
这样修改后,API就能正确接收并解析文件二进制数据,生成完整可用的附件了。
内容的提问来源于stack exchange,提问作者Vladyslav Zavalykhatko
相关产品推荐
相关产品推荐

