0
태블릿에서 문서를 업로드하기위한 시스템을 사용해보십시오. 멀터 및 익스프레스 사용 4Node.js 유사한 게시물 업로드
2 개 또는 3 개의 장치를 동시에 사용하는 동안 모든 사항이 정상이지만 더 많은 장치를 추가하면 파일 이름 문제가 발생합니다. Multer는 모든 업로드에 동일한 파일 이름을 제공합니다 (console.log(storedFile + " " + idPatient);
보기). 어쩌면 무언가 잘못되었지만 정확히 무엇인지 알 수 없습니다.
app.post("/api/Upload", jsonParser, function(req, res) {
var saveFilename = "",
savePath = "",
savePathForSql = "",
fileToSave = "";
var idDocument = 0,
idPatient = 0,
idDoctor = 0;
var uploadRequest = "";
var f = "queryLog.txt";
async.series([
function(callback) {
upload = multer({ storage: Storage }).single("imgUploader");
upload(req, res, function(err) {
if (err) {
console.log(err);
return res.end("Something went wrong!");
}
fileToSave = storedFile;
uploadRequest = req;
idDocument = JSON.parse(req.body.json)['id_doc_type'];
idPatient = JSON.parse(req.body.json)['id_patient'];
idLogin = JSON.parse(req.body.json)['id_login'];
mv("Images" + separator + fileToSave, idPatient + ".jpg", function(err) {
if (err) {
console.log(err);
} else {
return res.end("File uploaded sucessfully! ");
}
});
console.log(storedFile + " " + idPatient);
callback();
});
},
function(callback) {
var request = new sql.Request()
var q1 = "exec storedproc";
request.query(q1, (err, result) => {
if (err) return callback(err);
console.log(result.recordset[0]);
savePath = result.recordset[0]['path'];
savePathForSql = savePath;
if (os != 'linux') {
savePath = savePath.replaceAll("/", "\\");
}
if (!fs.existsSync(f)) {
fs.writeFileSync(f, q1 + "\r\n", 'utf-8');
} else {
fs.appendFileSync(f, q1 + "\r\n", 'utf-8');
}
saveFilename = result.recordset[0]['filename'];
console.log(savePath + "/" + saveFilename);
callback();
})
},
function(callback) {
mkdirp(basePath + savePath, function(err) {
mv("Images" + separator + idPatient + ".jpg", basePath + savePath + separator + saveFilename, function(err) {
if (err) {
console.log(err);
console.log("Move failed: Images/" + idPatient + ".jpg" + " to " + basePath + savePath + separator + saveFilename);
} else {
console.log('Move complete. Images/' + idPatient + ".jpg" + " to " + basePath + savePath + separator + saveFilename);
return res.end("File uploaded sucessfully! ");
}
});
});
callback();
}
], function(err) {
var request2 = new sql.Request()
var q2 = "exec storedproc";
request2.query(q2, (err2, result2) => {
if (err2) return callback(err2);
if (err2) {
console.log(err2);
}
});
});
});
Multer의 설정은 다음과 같습니다
Storage = multer.diskStorage({
destination: function(req, file, callback) {
callback(null, "./Images");
},
filename: function(req, file, callback) {
storedFile = file.fieldname + "_" + Date.now() + "_" + file.originalname + randomInteger(99999) + ".jpg"
callback(null, storedFile);
}
});
고마워요! 매력처럼 작동합니다! – minicooper