Node File System を使用してアップロードされた画像を保存し、while ループを使用して既存のファイル名を確認し、一意のファイル名になるまで ++ をインクリメントしています。
コードが機能せずSyntaxError: Illegal break statement
、行の配置に関するエラーが発生し、while ループがループ内で関数をbreak;
正しく読み取れません。fs.exists()
ここで論理的に完全に間違ったことをしていますか?fs.writeFile()
既存のファイルを上書きしないようにする簡単な方法はありますか?
コード:
var fileExist = true;
var fileName = req.files.files[0].name.substr(0, req.files.files[0].name.lastIndexOf('.')) || req.files.files[0].name;
var fileType = req.files.files[0].name.split('.').pop();
var fileNumber = 1;
while (fileExist) {
fileNumber_str = fileNumber.toString();
var current = fileName + fileNumber_str + '.' + fileType;
fs.exists( __dirname + "/uploads/" + current, function(exists){
if (exists) {
fileNumber++;
}
if (!exists) {
var newPath = __dirname + "/uploads/" + current;
fs.writeFile(newPath, data, function (err) {
res.send('saved');
});
break;
}
});
}