文件上传到 BIM 360 在 Postman 中有效,但在 React JS 中无效

File Upload to BIM 360 works in Postman but not with React JS

大家好,我是 Autodesk Forge 的新手。我按照教程将文件上传到 BIM 360。使用 Postman 时上传有效,但使用 React JS 上传时我无法查看文件。

我正在使用 FileReader 并将文件读取为 BinaryString。其中 token 是访问令牌。

onInputChange(e){
    let files = e.target.files;
    let reader = new FileReader(); 
    reader.readAsBinaryString(files[0]);

    reader.onload = (e) => {
        const buffer = Buffer.from(e.target.result, 'base64');

        var myHeaders = new Headers();
        myHeaders.append("Authorization", `Bearer ${token}`);
        myHeaders.append("Content-Type", "application/octet-stream");

        var requestOpts = {
            method: 'PUT',
            headers: myHeaders,
            body: buffer,
        };

        
        fetch('https://developer.api.autodesk.com/oss/
            v2/buckets/:bucketKey/objects/:objectName'
            , requestOpts)
        .then(response => response.json())



    }
}

文件成功上传,但我无法在 bim 360 中查看它。图片如下。

bim360 file image

根据评论中的建议找到了解决方案。必须将 FileReader 方法更改为

reader.readAsArrayBuffer(files[0]);

文档位于 https://github.com/Autodesk-Forge/forge-api-nodejs-client/blob/master/src/api/ObjectsApi.js 表明正文必须是数组缓冲区。