文件上传到 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 表明正文必须是数组缓冲区。
大家好,我是 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 表明正文必须是数组缓冲区。