2016-03-21 93 views
0

我在我的node.js應用程序中使用了Muller,儘管我正在嘗試查看我應該如何去查找multer在我的後期功能中放置文件的位置,以便我可以對其進行後期處理。什麼是正確的方式?目前,我有這樣的:手術和後期處理文件?

var express = require('express') 
var app = express() 
var multer = require('multer') 
var upload = multer() 


var storage = multer.diskStorage({ 
    destination: function (req, file, callback) { 
    callback(null, './public/uploads/'); 
    }, 
    filename: function (req, file, callback) { 
    callback(null, file.fieldname + '-' + Date.now()); 
    } 
}); 

var cpUpload = upload.fields([{ name: 'myfile', maxCount: 1 }]); 

app.post('/profile', cpUpload, function (req, res, next) { 
    var destination, filename; 
    storage.getDestination(req, req.files.myfile[0], function(param1, dest) { destination = dest; }) 
    storage.getFilename(req, req.files.myfile[0], function(param1, fn) { filename = fn; }) 
    var path = destination + '/' + filename; 
}) 

我期待已久的req.files.myfile[0]進入查看是否提供目標路徑,但不會出現這樣的情況:

{ fieldname: 'myfile', 
    originalname: 'mytextfile.txt', 
    encoding: '7bit', 
    mimetype: 'text/plain' } 

我想肯定我使用的任何方法都與API的期望相符。

+0

是'req.files.myfile'實際上設置爲一個數組或者是不確定的?如果設置,'req.files.myfile'包含什麼? – mscdex

+0

已更新問題以反映我所看到的 –

+0

這很奇怪,我現在將文件名,路徑和目標視爲結果的一部分。除了做一個新的npm安裝之外,我不確定我還會在這裏更改什麼? –

回答

0

使用沒有指定字段名稱的multer函數會導致沒有文件被保存(在這種情況下,它僅保存非文件字段)。如果您想接受文件字段,則必須傳遞字段的字符串名稱。

+0

在對我的問題做一個簡單的例子時,我簡化了它。已經更新了這個問題。 –