【问题标题】:Meteor / React.js: save image file to serverMeteor / React.js:将图像文件保存到服务器
【发布时间】:2016-11-10 19:21:34
【问题描述】:

我创建了一个项目,这里是:https://github.com/dartem/upload_files,它上传一个文件并使用 FilesCollection 保存它。但是,看起来实际文件只是暂时保存在 /cdn/storage 中,一旦我重新启动 Meteor 或打开隐身窗口,实际文件就不存在了。

我指定了路径目录,即 assets/app/uploads/Images,但图像不会保存在该目录中。如何在该目录中保存实际文件?

【问题讨论】:

    标签: javascript reactjs meteor file-upload


    【解决方案1】:

    我运行了您的演示,它确实将文件保存到该目录。

    不建议将文件存储在 .meteor/local 中 - 基本上这些文件是临时的 - 在重新构建应用程序时,meteor 将删除并替换它们。这解释了为什么您以后无法再次找到它们。

    也可以将文件写入公共目录,但这会在您每次保存文件时触发您的应用程序的重建,这不是一个好的副作用。

    我建议您仅将文件保存到 gridFS 或 AWS(或任何其他存储选项)。您可以将它们保存到文件系统中其他位置的文件夹中,只要您有办法提供它们(某种网络服务器,如 apache、express 或其他)。您的选择取决于您拥有的系统管理员能力。

    【讨论】:

    • 感谢您的回答。如果我想将它们保存到我的 public/images/uploads 文件目录中,那么最好的方法是什么?我从 Node 想到了 FS,但我马上就遇到了很多错误。有什么建议/例子吗?基本上,我想要的是将文件上传/移动到公共目录中,以便这些文件物理存在。
    • 从服务器上可以使用fs,没问题。在开发中,如果您写入 /public 目录,它会每次都强制重新构建,这对您的开发工作流程没有帮助,实际上重新构建的随机时间是一个问题。我想如果你在你的项目之外创建一个文件夹,比如说 /Users/mikkel/myproj/uploads,并从你的公共目录符号链接它,所以它将是 /public/uploads,那么它可能不会进行重建,并且您可以将应用程序中的文件称为 /uploads/... 您可以在生产环境中执行类似的操作,而不必担心重建
    • 谢谢,米克尔。我仍然不知道如何使它工作,但我理解了大致的想法。 Codewise,我在哪里可以查找 Meteor/React 组合的代码示例?我已经尝试过类似 Meteor FS-Node 的软件包,但我不知道如何使它们适用于我的应用程序演示。他们都说像 Npm.require 这样的东西,这立即给了我错误。
    • 我认为 fs 已经在任何服务器方法中可用(我检查了我的代码以查看),因此您处理文件的 javascript 必须位于服务器文件夹中。 React 不存在,它只是你将要编写的纯 js。所以几乎任何 nodejs/npm 示例都应该适合你。
    • 谢谢 Mikkel,我会努力的。也许这次对我有用
    猜你喜欢
    • 2015-01-24
    • 2017-11-19
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    • 1970-01-01
    • 2011-12-04
    • 2019-12-16
    相关资源
    最近更新 更多