Sails.js: 如何知道请求是否包含要上传的文件?
Sails.js: How to know if the request contains a file to upload?
我的一个控制器中有下一个操作,它的功能是上传图像文件或使用视频创建新的封面模型 url,它工作正常但是当请求有 header Content-Type: multipart/form-data 并且不包含文件操作在 req.file()
中抛出超时错误。
upload: function(req, res) {
res.setTimeout(0);
function onCreateCover(err, cover) {
if (err) {
return res.negotiate(err);
} else {
res.status(201);
return res.json(cover);
}
}
if (/^multipart\/form-data/.test(req.headers['content-type'])) {
req.file('image').upload({
maxBytes: 2000000,
dirname: coverDir
}, function(err, uploadedFile) {
if (err) {
res.serverError(err);
} else if (uploadedFile.length > 0) {
Cover.create({
title: req.body.title,
description: req.body.description,
path: uploadedFile[0].fd
}).exec(onCreateCover);
}
});
} else {
Cover.create(req.body).exec(onCreateCover);
}
}
我想知道是否存在一种方法或方式来检查请求是否真的包含文件
不知道有没有更好的方法,我用的是这个:
if (req._fileparser.upstreams.length) { /* upload code */ }
我的一个控制器中有下一个操作,它的功能是上传图像文件或使用视频创建新的封面模型 url,它工作正常但是当请求有 header Content-Type: multipart/form-data 并且不包含文件操作在 req.file()
中抛出超时错误。
upload: function(req, res) {
res.setTimeout(0);
function onCreateCover(err, cover) {
if (err) {
return res.negotiate(err);
} else {
res.status(201);
return res.json(cover);
}
}
if (/^multipart\/form-data/.test(req.headers['content-type'])) {
req.file('image').upload({
maxBytes: 2000000,
dirname: coverDir
}, function(err, uploadedFile) {
if (err) {
res.serverError(err);
} else if (uploadedFile.length > 0) {
Cover.create({
title: req.body.title,
description: req.body.description,
path: uploadedFile[0].fd
}).exec(onCreateCover);
}
});
} else {
Cover.create(req.body).exec(onCreateCover);
}
}
我想知道是否存在一种方法或方式来检查请求是否真的包含文件
不知道有没有更好的方法,我用的是这个:
if (req._fileparser.upstreams.length) { /* upload code */ }