我正在使用multer在express和node中通过表单上传图片,然而所有的文件名都是像“8f92a1388f70c6c88eb32489f6bcfcc9”这样的,甚至没有扩展名。我该如何在客户端显示它们?
尝试:
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, '/where/ever/the/upload/dir/is')
},
filename: function (req, file, cb) {
cb(null, file.orignalname)
}
})
var upload = multer({ storage: storage })
改为:
var upload = multer({ dest: 'uploads/' })
请求文件:
如果你已经正确设置了文件或目录的权限,那么服务器就可以成功地请求它。记住,如果在文件被写入后没有进行任何高级操作,那么一定要显式地写出带有扩展名的文件名;)
如果你想更好地控制上传过程,你应该使用存储选项而不是目标选项。Multer 带有 DiskStorage 和 MemoryStorage 两种存储引擎,也可以从第三方提供商获取更多的引擎。 --The Horse
(参考: github: expressjs/multer)
注意: Multer 不会为你追加任何文件扩展名,你的函数应该返回一个带有文件扩展名的完整文件名。
file.orignalname
应该是 file.originalname
。 - armadadrive