Node.js 如何获取已存储在文件夹中的文件的文件名和文件路径?

Node.js 如何获取已存储在文件夹中的文件的文件名和文件路径?,node.js,mongodb,express,mongoose,Node.js,Mongodb,Express,Mongoose,我已经在名为“上传”的文件夹中使用Multer上传了不同类型的文件(图像、pptx、视频和docx) var storage = multer.diskStorage({ //multers disk storage settings destination: function (req, file, cb) { cb(null, './uploads/'); }, filename: function (req, file, cb) {

我已经在名为“上传”的文件夹中使用Multer上传了不同类型的文件(图像、pptx、视频和docx)

var storage = multer.diskStorage({ //multers disk storage settings
    destination: function (req, file, cb) {
        cb(null, './uploads/');
    },
    filename: function (req, file, cb) {
        var datetimestamp = Date.now();
        cb(null, file.originalname);
    }
});

var upload = multer({ //multer settings
                storage: storage
            }).single('file');

/** API path that will upload the files */
app.post('/upload', function(req, res) {
    upload(req,res,function(err){
        if(err){
             res.json({error_code:1,err_desc:err});
             return;
        }
         res.json({error_code:0,err_desc:null});
    });
});
现在上传的文件存储在“上传”文件夹中,如/uploads/demo.pptx


我需要获取这些文件并发送存储文件的文件路径或url,并作为响应发送给客户端,以便客户端可以访问或下载这些文件。

通常,当您需要做的不仅仅是为它们提供服务和上载新文件时,还需要将文件存储在DB中。为此,您只能将文件的元数据保存到数据库中(例如大小、类型、路径、名称)。但是,如果您出于某种原因仍然需要在DB中存储文件,MongoDB将提供一个组件,并提供有关使用该组件的文档。

通常,当您需要做的不仅仅是为其提供服务和上载新文件时,还需要在DB中存储文件。为此,您只能将文件的元数据保存到数据库中(例如大小、类型、路径、名称)。但是,如果出于某种原因仍需要在DB中存储文件,MongoDB将提供一个组件,并提供有关使用此组件的文档。

您可以执行以下操作:-

var mongojs = require('mongojs');
var db = mongojs(//credential here);

var uploaded_file=db.collection("uploaded_file");


var storage = multer.diskStorage({ //multers disk storage settings
    destination: function (req, file, cb) {
        cb(null, './uploads/');
    },
    filename: function (req, file, cb) {
        var datetimestamp = Date.now();
        cb(null, file.originalname);
    }
});

var upload = multer({ //multer settings
                storage: storage
            }).single('file');

/** API path that will upload the files */
app.post('/upload', function(req, res) {
    upload(req,res,function(err){
        if(err){
             res.json({error_code:1,err_desc:err});
             return;
        }else{
                  uploaded_file.insert(res.file,function(err, saved) {// i am asuming res.file have the information you needed to send
                if(err){
                    console.log("Unexpected error occurred during insertion in database:"+err);
                }else{
                     res.send({error_code:0,file_info:res.file});
                     res.end();
                }
            });
        }

    });
});

您可以这样做:-

var mongojs = require('mongojs');
var db = mongojs(//credential here);

var uploaded_file=db.collection("uploaded_file");


var storage = multer.diskStorage({ //multers disk storage settings
    destination: function (req, file, cb) {
        cb(null, './uploads/');
    },
    filename: function (req, file, cb) {
        var datetimestamp = Date.now();
        cb(null, file.originalname);
    }
});

var upload = multer({ //multer settings
                storage: storage
            }).single('file');

/** API path that will upload the files */
app.post('/upload', function(req, res) {
    upload(req,res,function(err){
        if(err){
             res.json({error_code:1,err_desc:err});
             return;
        }else{
                  uploaded_file.insert(res.file,function(err, saved) {// i am asuming res.file have the information you needed to send
                if(err){
                    console.log("Unexpected error occurred during insertion in database:"+err);
                }else{
                     res.send({error_code:0,file_info:res.file});
                     res.end();
                }
            });
        }

    });
});

请分享一些代码。Gaurav Srivastava,我已经编辑了这篇文章。请查看itconsole.log上传后的响应,看看它是否返回文件路径或url,然后让我知道,这样我就可以帮助你处理代码了。我收到了大约500行的长响应。部分响应类似于
文件:{fieldname:'file',originalname:'css3net.pptx',encoding:'7bit',mimetype:'application/vnd.openxmlformats-officedocument.presentationml.presentation',destination:'./uploads/',filename:'css3net.pptx',path:'uploads\\css3net.pptx',size:2202892},locals:{},statusMessage:'OK',statusCode:200}
请分享一些代码。Gaurav Srivastava,我已经编辑了这篇文章。请查看itconsole.log上传后的响应,看看它是否返回文件路径或url,然后让我知道,这样我就可以帮助你处理代码了。我收到了大约500行的长响应。部分响应类似于
文件:{fieldname:'file',originalname:'css3net.pptx',encoding:'7bit',mimetype:'application/vnd.openxmlformats-officedocument.presentationml.presentation',destination:'./uploads/',filename:'css3net.pptx',path:'uploads\\css3net.pptx',size:2202892},locals:{},statusMessage:'确定',状态代码:200}