Node.js - 使用Multer如何获取上传文件的(源文件)完整路径?

问题描述:

我想在我的node.js代码中上传文件的完整路径,就像图像一样动态。Node.js - 使用Multer如何获取上传文件的(源文件)完整路径?

我不知道该怎么办,我需要你的帮助

app.post('/upload', upload.single('userfile'), function(req, res){ 

    var filename = __dirname +'/'+ req.file.path; //this is uploaded file path 
    var s = fs.ReadStream(filename); 
    s.on('data', function(data) { 
    shasum.update(data) 
    }) 
    // making digest 
    s.on('end', function() { 
    var hash = shasum.digest('hex') 
    console.log("Hash : "+ hash + ' ' + filename) 
    res.send('Uploaded : ' + hash); 
    }) 
}) 

enter image description here

+0

尝试一下本作的完整路径** VAR fullUrl = req.protocol + '://' + req.get( '主机') + req.file.path; ** –

+0

错误:ENOENT:没有这样的文件或目录,打开'C:\ nodejs \ example \ http:\ localhost:3000 \ uploads \ 4.4.1_'.hwp' –

当我从您的评论看,你正在使用当地的环境。因此主机不会导致完整的URL。所以尝试删除主机。

所以更换:

var filename = __dirname +'/'+ req.file.path; 

有了:

var filename = req.protocol + req.file.path;