关于extract.autodesk.io的问题 - 采用文件路径而不是选择文件选择器

时间:2016-12-26 12:26:33

标签: javascript node.js autodesk autodesk-forge flow-js

我试图修改项目,因此我可以将文件路径或文件作为变量插入,而不是用户选择模型文件。所以我正在寻找实际上传的位置。

submitProject()中: https://github.com/cyrillef/extract.autodesk.io/blob/master/www/js/app.js#L129

我看到它只是发送(带有ajax请求)一个对象,该对象包含文件名和唯一标识符,但不包含实际的二进制文件。

在这里: https://github.com/cyrillef/extract.autodesk.io/blob/master/www/js/upload-flow.js#L34 那是r.upload(),这是模型的实际上传吗?

在文件选择器中按ok时,是否开始正确上传文件?

有没有办法给它上传文件路径,而不是使用表单和文件选择器上传?

2 个答案:

答案 0 :(得分:1)

这个样本的作者应该在圣诞节假期,我刚刚下载并在我的机器上设置了提取器样本,稍加调试代码,让我尽可能多地回答。

总的来说,我认为你的一些理解是正确的,但让我再解释一下:

对于要上传和翻译的本地文件,实际上有两个实际的“上传”步骤。

如你所说,当你在文件选择器中按ok时,是的,该文件将首先上传到"提取器"你注意到某些方法(如r.upload()),它实际上是使用JavaScript库调用“flow.js"”,它通过HTML5 File API提供多个同步,稳定,容错和可恢复/可重新启动的文件上传。我不是这方面的专家,但您可以检查该模块有关如何使用它来上传文件。

到目前为止,您的文件已从客户端上传到"提取器"服务器,但是如果你想将文件翻译成" svf",则需要将文件上传到Autodesk Server(OSS),这可以通过单击“提交我的项目”来完成,当你点击这个时如你所说,来自客户端的按钮,它将在https://github.com/cyrillef/extract.autodesk.io/blob/master/www/js/app.js中调用方法submitProject(),此方法将向"提取器"发送“/ api / projects”的发布请求。服务器,如果您检查服务器端https://github.com/cyrillef/extract.autodesk.io/blob/master/server/projects.js的代码,您可以看到提取器服务器实际上将文件上载到Autodesk OSS,然后触发翻译服务。

答案 1 :(得分:1)

此功能(传递URL字符串与文件二进制文件)已经实现。您可以使用uri:编辑框并将文件URL粘贴到那里。它支持带有访问令牌的http(s)或S3 uri。 物理上传发生在此file中,而SubmitProject()代码仅发送信息为JSON。 JSON对象仅包含对使用flow.js上载的文件的引用。但如果您选择了这种方法,它将包含uri字符串。