nodejs多文件上传,路径包含双斜杠
nodejs multer file upload, path contains double slashes
我正在通过 nodejs 和 multer 模块上传图片,这是我使用的代码:
app.post('/upload', upload.single('file'), function(req, res, next) {
var tmp_path = req.file.path,
target_path = __dirname + '/public/uploads/' + req.file.originalname,
src = fs.createReadStream(tmp_path),
dest = fs.createWriteStream(target_path);
src.pipe(dest);
fs.unlink(tmp_path); //deleting the tmp_path
src.on('end', function() {
res.json({
success: true,
file: '/uploads/' + req.file.originalname
});
});
src.on('error', function(err) {
console.log('err', err);
res.json({
success: false
});
});
});
问题是有时(随机发生)会触发错误回调,内容如下:
所以看起来路径中添加了额外的斜杠,导致脚本找不到临时位置和 returns 错误,也许有人遇到过这个问题并且可以提供帮助 ;)
尝试运行发送成功消息后取消链接,管道是异步的,因此可能在删除后执行。
src.on('end', function() {
res.json({
success: true,
file: '/uploads/' + req.file.originalname
});
fs.unlink(tmp_path)
});
您可以使用以下代码来消除此错误...
尝试:- path.replace("\\","/");
这一定能解决你的问题。
我正在通过 nodejs 和 multer 模块上传图片,这是我使用的代码:
app.post('/upload', upload.single('file'), function(req, res, next) {
var tmp_path = req.file.path,
target_path = __dirname + '/public/uploads/' + req.file.originalname,
src = fs.createReadStream(tmp_path),
dest = fs.createWriteStream(target_path);
src.pipe(dest);
fs.unlink(tmp_path); //deleting the tmp_path
src.on('end', function() {
res.json({
success: true,
file: '/uploads/' + req.file.originalname
});
});
src.on('error', function(err) {
console.log('err', err);
res.json({
success: false
});
});
});
问题是有时(随机发生)会触发错误回调,内容如下:
所以看起来路径中添加了额外的斜杠,导致脚本找不到临时位置和 returns 错误,也许有人遇到过这个问题并且可以提供帮助 ;)
尝试运行发送成功消息后取消链接,管道是异步的,因此可能在删除后执行。
src.on('end', function() {
res.json({
success: true,
file: '/uploads/' + req.file.originalname
});
fs.unlink(tmp_path)
});
您可以使用以下代码来消除此错误...
尝试:- path.replace("\\","/");
这一定能解决你的问题。