【问题标题】:Meteor how to set path of image folder in CollectionFS to special folder in project流星如何将CollectionFS中的图像文件夹路径设置为项目中的特殊文件夹
【发布时间】:2023-03-17 03:47:01
【问题描述】:

我正在尝试将上传的图像保存到我的流星项目的 public/images 文件夹中,所以我编写了这段代码。

Images = new FS.Collection("images", {
  stores: [new FS.Store.FileSystem("images", {path: "images"})]
});

但是当我上传图片时,文件被保存到

.meteor/local/build/programs/server/images/

文件夹而不是 public/images 文件夹。

那么如何设置路径或将图像保存到 public/images 文件夹而不是 .meteor 文件夹?

我会解释为什么我需要它。

我还有另一个收藏,建筑物,它具有这种格式。

Schemas.Buildings = new SimpleSchema({
  'name': {
    type: String,
    label: 'What is the name of the building?',
    max: 200,
    unique: true
  },
  'picture': {
    type: String,
    max: 200,
    optional: true,
    label: " ",
    autoform: {
      afFieldInput: {
        type: 'fileUpload',
        collection: 'Images',
        accept: 'image/*',
        label: 'Choose Aerial Image'
      }
    }
  }

因为我需要设置带有图片的样板建筑,所以我需要将样板图片放到 public/images/ 文件夹中,并在 Meteor.startup bootstrap 中使用它们来设置样板建筑的图片值。

如果我把这些图像放到 .meteor 文件夹中,它会被流星重置命令删除,所以我希望将图像持久化到公共文件夹。

请教我!

【问题讨论】:

  • 是否必须将文件存储在服务器上,或者您只想存储图像(例如一些免费的云服务将是更好的选择)?它易于配置,您可以很好地控制上传的文件。
  • 让我编辑我的问题以获取更多详细信息。

标签: image meteor collectionfs


【解决方案1】:

如果要保存到公用文件夹可以使用路径:

"../../../../../public/"

我没想到您会这样做的原因是每次上传内容时都会刷新您的应用程序。当你的路径设置为:

"../web.browser/images/"

可以像在公共文件夹中一样访问您的图像,但正如您之前所说,这会在服务器重新启动时删除它们。

如果您希望在服务器重新启动/重置之后可以访问您的图像,并希望防止它们在保存时刷新您的应用程序,您应该将它们存储在您的项目文件夹之外。例如,您可以在与 Meteor 项目相同的级别上创建地图“myImages”。保存位置应该是:

"../../../../../../myImages/"

当您部署应用程序时,应用不同的文件夹结构,并且当您在 Meteor 项目文件夹级别添加类似的图像文件夹时,保存位置应为:

"../../../../myImages/"

在这种情况下,您可能还必须设置一些权限,然后才能使用,但这对于本文而言可能过于复杂。

【讨论】:

  • 感谢您的关心,@Joos。我尝试了您的路径,但您似乎误解了我的要求。我不希望将 pubic/images 文件夹内容保存到 web.brower/images 文件夹中,而是希望相反的情况,即,将图像保存到 public/images 文件夹中。
  • 好吧,我更改了答案以反映公共保存,或者(如我所料)更理想的解决方案,因为直接保存到公共文件夹会触发您的应用刷新
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-05
  • 2019-02-20
  • 2014-05-20
  • 2014-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多