我有一个要在node.js
上传多个图像的要求。 所以我在前端使用angular2
。 我正在使用formData将文件发送到节点部分。 下面是代码:
public setAnswerImage(obj:any,files:any):Promise<any> {
try {
let urlDetails = obj["id"] ? ANSWER_URLS['updateimages'] : ANSWER_URLS['insertimages'];
let formData = new FormData();
Object.keys(obj).forEach(key =>{
formData.append(key,obj[key]);
});
console.log(formData)
for(let i =0; i < files.length; i++){
formData.append("uploads[]", files[i],files[i]['name']);
}
console.log(formData)
return this.restUtils.post(urlDetails, formData, {"id":obj["id"]});
}
catch(err) {
return Promise.reject(err);
}
}
let urlDetails = obj["id"] ? ANSWER_URLS['updateimages'] : ANSWER_URLS['insertimages'];
如果obj包含id,我将调用update方法,否则调用insert方法。
export const ANSWER_URLS = {
insertimages : { url : "/api/answer/response/insertimages"}
}
在节点部分中,我正在使用multer文件存储,我已经创建了一个文件夹,因为temp,并且在multer中将此路径设置为该文件夹,如下所示。
router.post("/response/insertimages", upload.array("uploads[]", 12), (req: Request, res: Response, next: NextFunction) => {
new AnswerRoute().saveAnswerImages(req, res, next);
});
var storage = multer.diskStorage({
destination: (req: Request, file, cb) => {
cb(null, video_path.dest + 'temp//');
}, filename: (req:Request, file, cb) => {
let name = file.originalname.split('.');
console.log(name,"mnae")
cb(null, new Date().getTime().toString() + '.' + name[name.length-1]);
}
})
var upload = multer({ storage: storage });
Console.log
输出显示了我上传的多个文件,但是在temp文件夹中,我只能看到一个:
[ 'doctor', 'jpg' ] 'mnae'
[ 'Doctorvisits', 'png' ] 'mnae'
上面的输出显示了我上传的两张图像,但是在temp文件夹中仅保存了一个文件。
我正在使用upload.array("uploads[]",12)
,其中上载包含多个文件,但是问题是当我上载多个文件时,只有第一个文件上载到temp文件夹。
我在哪里出错了?
请帮我