我从nodejs代码上传到salesforce系统的图像没有预览

问题描述 投票:0回答:1

根据 this 博客,我正在尝试将文件上传到 salesforce。

这是纽约代码的一部分:

const base64Content = fs.readFileSync('/home/***/Desktop/version.png', { encoding: 'base64' });
const fileName='version.png';

request.post({
    url: `${res.instance_url}/services/data/v49.0/sobjects/ContentVersion`,
    auth: {
        bearer: res.access_token
    },
    formData: {
        entity_content: {
            value: JSON.stringify({PathOnClient: fileName}),
            options: {
                contentType: 'application/json'
            }
        },
        VersionData: {
            //value: base64Content,
            value: `data:image/png;base64,${base64Content }`,
            options: {
                filename: fileName,
                contentType: 'application/octet-stream'
            }
        }
    }
}, (err, response) => {
    if (err) callbackerr(err);
    callback(response)
})

图片已上传,但 salesforce UI 中没有预览。我尝试下载图像 -

对于 PNG 图像,我得到:

读取 PNG 图像文件时发生致命错误:不是 PNG 文件

对于 JPEG:

解释 JPEG 图像文件时出错(不是 JPEG 文件:以 0x64 开头 0x61)

我错过了什么?我也尝试用“image/png”替换“application/octet-stream”。

在开发者控制台中查询如下:

SELECT id, ContentDocumentId, FileExtension, FileType FROM ContentVersion

提供 FileExtension png 和 FileType PNG。

javascript node.js base64 salesforce
1个回答
0
投票

我发现问题了。 图像应该是缓冲区而不是base64...

const buffer = fs.readFileSync('/home/***/Desktop/version.png');
© www.soinside.com 2019 - 2024. All rights reserved.