使用 Multer 和 Express 进行文件上传和展示

3
我正在使用multer在express和node中通过表单上传图片,然而所有的文件名都是像“8f92a1388f70c6c88eb32489f6bcfcc9”这样的,甚至没有扩展名。我该如何在客户端显示它们?

你找到这个问题的解决方案了吗? - CSG0811
1个回答

4

尝试:

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 不会为你追加任何文件扩展名,你的函数应该返回一个带有文件扩展名的完整文件名。


那么,replace upload.single('field') 是什么意思? - user2649058
1
请注意:给定的属性名中有一个拼写错误 - file.orignalname 应该是 file.originalname - armadadrive
@armadadrive 同意..编辑队列已满,所以我的更改无法进行。 - Josh Hibschman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接