2016-06-22 11 views
0

「uploads」という名前のフォルダにMulterを使用して、さまざまな種類のファイル(image、pptx、video、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を送信し、応答として送信する必要がありますクライアントにアクセスして視聴またはダウンロードすることができます。

+0

は、いくつかのコードを共有してください。 –

+0

Gaurav Srivastava、私は投稿を編集しました。してくださいそれを見てください –

+0

console.logアップロード後の応答ファイルパスまたはURLを返すかどうかを確認してください私はコードを助けることができるので教えてください –

答えて

2

通常、DBに格納されているファイルは、サービスを提供して新しいファイルをアップロードする以外にも必要です。この提案では、ファイルのメタデータだけをDBに保存することができます(サイズ、タイプ、パス、名前など)。しかし、何らかの理由でDBにファイルを保存する必要がある場合、MongoDBはGridFSコンポーネントを持ち、このコンポーネントの使用に関するドキュメントを提供します。

1

あなたはこのような何かを行うことができます: -

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(); 
       } 
      }); 
     } 

    }); 
}); 
関連する問題