私は手ごわいを使用して NodeJS でファイルのアップロードを処理しています。これは私にとってはうまくいきます。ここで、アップロードをもう少し構成したいと思います。アップロードでAngularからフィールドを渡しています。これはproject_id
. この ID で名前を付けたアップロードにフォルダーを作成し、そのフォルダーにファイルを書き込みたいと考えています。
そのため、ディレクトリが存在するかどうかを確認し、存在しない場合は作成してfs.mkdir
からファイルを書き込みます。これを試してみると、EINVAL, rename
エラーと HTTP 500 ステータス コードが表示されます。
これは私の試みですが、これを修正する方法を知っている人はいますか?
app.post('/uploads/', function(req, res, next){
var form = new formidable.IncomingForm();
form.keepExtensions = true;
form.parse(req, function(err, fields, files){
if (err) next (err);
fs.exists('uploads/' + fields.project_id + '/', function (exists){
if (exists) {
fs.rename(files.upload.path, 'uploads/' + fields.project_id + '/' +files.upload.name, function(err){
if (err) next (err);
res.render('profile.ejs',{
user: req.user
});
});
} else {
fs.mkdir('uploads/' + fields.project_id + '/', function (err){
if (err) next (err);
});
fs.rename(files.upload.path, 'uploads/' + fields.project_id + '/' + files.upload.name, function(err){
if(err) next (err);
res.render('profile.ejs',{
user:req.user
});
});
}
});
});
});