express.js를 사용하고 노드 서버에 대용량 파일을 업로드하기 위해 uploadify를 사용하면 둘 이상의 사용자가 동시에 로그인 할 때를 제외하고 모든 것이 올바르게 작동하며, 그래도 여전히 작동하지만 서버는 한 번에 하나의 파일 만 업로드 할 수 있으므로 다른 사용자가 업로드를 완료 할 때까지 기다려야하므로 너무 용납 될 수 없습니다. 여기 다중 클라이언트는 node.js에서 동시에 파일을 업로드 할 수 없습니다.
는 여기exports.upload = function(req, res,next){
// console.log(req.body);
// console.log(req.files);
var tmp_path = req.files.product_video.path;
var target_path = 'F:/shopping/shop/' +req.body.shop_id+'/'+ req.files.product_video.name;
fs.rename(tmp_path, target_path, function(err) {
if (err) {
console.log(err)
}
else{
fs.unlink(tmp_path, function() {
if (err){
console.log(err)
}else{
exec("C:/ffmpeg/bin/ffmpeg -i shop/"+ req.body.shop_id+ '/' + req.files.product_video.name + " -ss 00:01:00.00 -r 1 -an -vframes 1 -s 250x150 -f mjpeg shop/"+ req.body.shop_id+ '/' + req.files.product_video.name + "_thumbnail.jpg", function(err){
var data = {
'thum_src':'shop/'+ req.body.shop_id+ '/' + req.files.product_video.name + "_thumbnail.jpg",
'video_name':req.files.product_video.name,
}
res.send(data);
});
}
});
}
});
};
는 fs.rename
가 올바른 경로로 파일을 이동하는 것입니다 때문에 당신의 fs.unlink
전화를하지 필요가 없습니다 프론트 엔드 코드
$('#input_product_video').uploadify({
'formData':{'shop_id':$('#shop_id').val()},
'buttonText' : 'add',
'fileSizeLimit' : '100MB',
'fileObjName' : 'product_video',
'uploader' : '/uploads',
'swf' :'/public/javascripts/lib/uploadify/uploadify.swf',
'onUploadSuccess':function(file,data){
console.log(file);
console.log(JSON.parse(data));
console.log(response);
}
});