2014-01-27 55 views
1

我想用nodejs接收圖片,音頻和視頻文件。 我通過電話將它們發送爲http請求。使用連接使用NodeJS接收文件

使用nodeJS我使用connect插件。我真的不明白它的作用,以及如何操作文件存儲的位置。

var http = require('http'); 
var connect = require('connect'); 

var app = connect(); 
var server = http.createServer(app); 
app.use(connect.bodyParser()); 
app.use(function(req, res) { 
    console.log(req.files); // Here is object with uploaded files 
}); 
server.listen(8070); 

如何告訴連接將文件存儲在其他地方,如在temp目錄中。

如何讀取請求選項以決定我要存儲該文件的位置。

這裏的文件是什麼:

{ file: 
{ fieldName: 'file', 
originalFilename: 'VID_20131211_124140.mp4', 
path: 'C:\\Users\\krause\\AppData\\Local\\Temp\\4120-1fx90bk.mp4', 
headers: 
    { 'content-disposition': 'form-data; name="file"; filename="VID_20131211_124140.mp4"', 
    'content-type': 'video/mp4' }, 
ws: 
    { _writableState: [Object], 
    writable: true, 
    domain: null, 
    _events: [Object], 
    _maxListeners: 10, 
    path: 'C:\\Users\\krause\\AppData\\Local\\Temp\\4120-1fx90bk.mp4', 
    fd: null, 
    flags: 'w', 
    mode: 438, 
    start: undefined, 
    pos: undefined, 
    bytesWritten: 7046598, 
    closed: true, 
    open: [Function], 
    _write: [Function], 
    destroy: [Function], 
    close: [Function], 
    destroySoon: [Function], 
    pipe: [Function], 
    write: [Function], 
    end: [Function], 
    setMaxListeners: [Function], 
    emit: [Function], 
    addListener: [Function], 
    on: [Function], 
    once: [Function], 
    removeListener: [Function], 
    removeAllListeners: [Function], 
    listeners: [Function] }, 
size: 7046598, 
name: 'VID_20131211_124140.mp4', 
type: 'video/mp4' } } 
+1

您是否正在使用** Express **,並且您是否已經爲此編寫了**路線**?像app.get('/ upload,'my_controller.upload') –

+0

我不使用快速插件explecit。我所擁有的就是上面的這臺服務器,沒有任何路線。 – marcel

回答

1

我假設你只是想用這個應用程序的POST'ed文件存儲在比tmp其他的路徑。

您可以通過設置bodyParser來設置默認上傳目錄。 在快遞,我們通過 app.use(express.bodyParser({ keepExtensions: true, uploadDir: '/my/files' }));

去做了,你可以試試這個是連接: app.use(connect.multipart({ uploadDir: path })); 查看詳情here

個人而言,我做的是什麼,我將文件從臨時目錄複製並把它放在一個相關的地方(如果你有不同的上傳目錄),使用node fs

+0

我想複製文件是一個非常好的主意。所以我可以把它們放到不同的文件夾中;)tyvm – marcel