gpt4 book ai didi

node.js - 在jade中快速上传图片并查看

转载 作者:太空宇宙 更新时间:2023-11-03 22:18:48 25 4
gpt4 key购买 nike

我正在尝试上传图像并以 express 方式显示它。我将我的应用程序配置为在“公共(public)/图像”中上传

  app.use(express.bodyParser({ keepExtensions: true, uploadDir: './public/images' }));

上传进展顺利,但我找不到如何在我的 Jade 模板中显示上传的图像。我从 req.files 对象获得的图像路径类似于“public/images/imagename.jpg”,但我可以看到图像的唯一方法是在这样的 url 中:

http://localhost:3000/images/imagename.jpg

有没有办法从 req.files 中删除“public”参数,或者还有其他解决方案吗?谢谢大家!

编辑:

好的,谢谢。但我的问题是关于在 Jade 模板中显示图像。我添加了这一行:

app.use('/public/images/', express.static(__dirname + '/public/images/'));

现在我可以访问该目录中的文件了。但我无法在我的 Jade 模板中显示它们。当我尝试这个时(使用 foto_path === req.files.image.path):

img(src= #{material.foto_path})

我得到这个网址:

http://localhost:3000/undefinedpublic/images/b1ce29f40ac7692ac62637e42f0f9128.jpgundefined

“未定义”有什么用?

谢谢!!

最佳答案

您需要知道 Express 配置您的公共(public)目录与 Apache 等其他传统服务器略有不同。我想为了显示静态资源,你的行看起来像这样:

app.use(express.static(__dirname + '/public'));

这将是您的应用中唯一可公开查看的文件夹。这就是为什么 Express 觉得在 url 中添加目录名称是多余的。 该网址并不反射(reflect)您的实际文件夹结构。

但是 req.files 确实显示了实际路径,以便您可以在应用程序中操作它,否则它在其他地方将无法使用。我的解决方案是直接引用 src = '/images/imageName.jpg'于 Jade 。您必须将实际的图像名称作为参数传递。或者,您可以从 req 中删除“公共(public)”部分并传递它。

关于node.js - 在jade中快速上传图片并查看,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12251302/

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