如何提供静态文件并将其路径提供给一个用户?

时间:2017-01-18 02:08:15

标签: javascript node.js express path static-files

我正在使用jsmodeler(https://github.com/kovacsv/JSModeler)在我的网站上显示3D模型。用户选择文件的唯一选项是通过filepicker并通过将文件路径放在url中(即http://localhost:3000/ModelView#https://cdn.rawgit.com/kovacsv/Online3DViewer/9e9ca71d/website/testfiles/cube.3ds)。我想通过我的节点js服务器发送一个文件,然后将文件加载到查看器中。

我想我需要将路径放到我正在服务的文件中并刷新页面?但是我如何得到这条道路呢?它应该只对一个用户可用,所以我不能把它放在公共文件夹中!

说我发送

res.sendFile(myFile)

这不会发送文件的路径吗?我也担心即使我得到了路径,当我在新网址刷新页面时,该文件也不再存在。

更新: 所以我在想当模型保存在我的服务器上时,我会将它保存在公共文件夹中,但是在一个随机数下,即“path / 1982746 / model.obj”。这样,没有人可以将模型键入URL。这是安全的,还是有人可以轻松看到所有公开的文件?

2 个答案:

答案 0 :(得分:1)

是的,随机数有助于混淆其他用户的文件。您可以使用post请求中的“multipart / form-data”将文件上传到节点服务器,并将其保存在某个位置。保存后,您可以执行类似

的操作
res.redirect('http://example.com/mypage/'+generatedNumber);

在重定向的页面上,您可以形成相应的路径并加载文件,因为它是服务器目录中的任何其他文件。

答案 1 :(得分:0)

您可以保留一个通用的Url来下载文件,只需发送您可以下载文件的文件名,这样您就可以将文件保存在公共文件夹中的任何位置。

kill 9857

希望这有帮助。