formidable是一个express中间件,用于文件上传。
网上关于formidable的使用示例在windows环境下很容易出现问题,现整理注意事项如下:
1、文件上传路径设置问题。
网上的代码多是如下这样:
var form = new formidable.IncomingForm(); form.uploadDir = "public/images";
windows环境下,路径应该使用反斜杠,如下:
var form = new formidable.IncomingForm(); form.uploadDir = "public\\images";
2、保留文件扩展名设置问题。
formidable默认不保留上传文件的扩展名,如果需要保留扩展名,需进行设置。网上的设置方式如下:
const form = new formidable.IncomingForm(); form.keepExtensions = true;//保存扩展名
实际使用中,发现这个设置并不生效。查看formidable(2.0.1版本)源码后,发现应该像下面这样设置才行。
const form = new formidable.IncomingForm(); form.options.keepExtensions = true;
或者这样设置。
const form = new formidable.IncomingForm({keepExtensions:true});
这个现象应该和windows环境无关,猜测是formidable版本不同导致的。