gpt4 book ai didi

node.js - ostrio :files package is working, 但无法访问图像

转载 作者:行者123 更新时间:2023-12-02 12:21:30 31 4
gpt4 key购买 nike

我得到了ostrio:files包在我的应用程序中工作,因此我的图像正在上传到服务器(据我所知),并且数据库有对它们的引用,但我不知道如何实际提供它们。例如,我今天早上上传了一张图片。 DB包含原始名称,以及它现在存在的文件路径:

assets/app/uploads/Images/twLXDmCTiqyGy4Yq7.jpg

问题是,当我将其放入网址时,它只会返回我的应用程序的主页。我尝试将上传目录更改为 /images/但仍然有同样的问题。我似乎无法在 Meteor 的文档中找到关于如何打开图像路径的明确答案,除了在构建包时包含它们之外,但这违背了用户输入的目的。

我还注意到 programs/web.browser/program.json我的应用程序中的文件似乎控制允许可见的内容,但理想情况下,我只想打开我的/images 目录来查看任何图像(当然,只有直接路径 - 我不需要目录列表)。有这种可能吗?

此外,我找到了config.public documentation中的配置选项,并将其设置为 true,以及设置 storagePathdownloadRoute路径。我设置的路径来 self 的服务器的基础(使用/作为路径的开头),但我似乎仍然无法查看我上传的任何图像 - 它只是加载我的应用程序的默认主页

----编辑----

添加更多详细信息以帮助解决此问题。

我在我的 /imports/api/images.js 中设置了我的 FileCollection文件,如下所示:

export const Images = new FilesCollection({

稍后,在另一个文件中,我导入该 api 并使用 Images.insert({ 进行上传。然后使用upload.on('end', function让它上传。我猜这就是我缺少将文件保存到文件系统的地方?希望这会有所帮助并为调试提供更多细节。另外,当我确实有 FileCursor 时对象,我尝试 link()方法,它只返回 link is not a function 。我基本上只是遵循Meteor Files GitHub Example .

--- 编辑 2 ---

正如 @Rolljee 所指出的,我的项目中还有其他尚未删除的软件包。他们进行了干扰并导致此功能无法正常工作。

最佳答案

当您在 FilesCollection 集合中存储新记录时,它会自动创建 link() 方法,您可以使用该方法来获取它为您的文件提供服务的路径。

你应该能够像这样得到它:

const theUrl = MyFilesCollection.findOne(someId).link();

您也可以自己创建类似的内容,它遵循以下简单的命名约定:

link: `${Meteor.absoluteUrl() + file._downloadRoute}/${file._collectionName}/${file._id}/original/${file._id}.${file.extension}`,

关于node.js - ostrio :files package is working, 但无法访问图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48250699/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com