【问题标题】:Download file from Autodesk Forge 3D viewer从 Autodesk Forge 3D 查看器下载文件
【发布时间】:2019-05-04 22:47:01
【问题描述】:

如何从 Autodesk Forge 中的 3D 查看器下载文件。我正在使用 2 腿授权,我可以将文件上传到存储桶,但我不确定如何在 3D 查看器中从它们下载文件。下面的代码下载文件,但其中没有任何内容:

var element = document.createElement('a');
element.setAttribute('href', '#');
element.setAttribute('download', node.text);
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);

我已将此链接视为参考,但我不明白如何将其转换为 Javascript 或 .NET 中的代码:https://forge.autodesk.com/en/docs/data/v2/tutorials/download-file/

【问题讨论】:

  • 您参考的本教程是从 BIM 360 Docs 下载文件,而不是从您的 OSS Bucket 存储。让我更好地理解为什么需要从存储桶下载文件?通常,桶的使用是稍后请求翻译 CAD 文件以供 Forge 查看器使用,这不再是原始 CAD 格式,它将是查看器中可视化的 SVF(JSON 字符串)。
  • 对不起,我还在学习如何使用 Autodesk Forge,我创建了一个按钮来将项目上传到存储桶中,所以我想创建一个按钮来下载相同的项目,但如果不可能的话我将尝试在我的 BIM 360 版本中实现它。谢谢

标签: javascript c# .net autodesk-forge autodesk-viewer


【解决方案1】:

我现在可以下载文件,从 Javascript 使用 $.ajaxurl 路径到 .NET 中的方法,然后使用:

WebClient client = new WebClient();
Uri address = new Uri(storageLocation);
fileName = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\" + fileName;
client.Headers.Add("Content-Type", "application/octet-stream");
client.Headers.Add("Authorization", "Bearer " + credentials.TokenInternal);
client.DownloadFileAsync(address, fileName);
return client;

这会将文件下载到桌面。

【讨论】:

    【解决方案2】:

    你也可以试试这个端点:

    https://forge.autodesk.com/en/docs/data/v2/reference/http/buckets-:bucketKey-objects-:objectName-GET/

    它将从您指定的存储桶位置下载一个对象。

    这是一个 REST 端点,您可以检查 NPM 或 NuGet 我们必须查看该功能是否已经可用。如果不是,请提交包含它的请求。

    【讨论】:

    • 我正在尝试从 BIM 360 文档下载并已链接 Javascript 和 C# 以尝试从文件夹中下载项目,但是在使用代码时:client.DownloadFileAsync(storageLocation, fileName);,我收到错误 500,我我不知道为什么。
    猜你喜欢
    • 2017-03-28
    • 2021-11-12
    • 1970-01-01
    • 2021-09-19
    • 1970-01-01
    • 2021-02-25
    • 2019-03-27
    • 2020-10-23
    • 2017-01-07
    相关资源
    最近更新 更多