使用connect接收使用NodeJS的文件

时间:2014-01-27 11:30:59

标签: node.js connect

我想通过nodejs接收图片,音频和视频文件。 我通过phonegap发送它们作为http请求。

使用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);

如何告诉connect将文件存储在temp-directory中的其他位置。

我如何阅读请求选项以决定我要存储该文件的位置。

以下是文件的内容:

{ 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 个答案:

答案 0 :(得分:1)

我假设你只是想使用这个应用程序将POST文件存储在tmp以外的路径中。

您可以通过设置bodyParser来设置默认上传目录。 在快递我们做到了 app.use(express.bodyParser({ keepExtensions: true, uploadDir: '/my/files' }));

你可以尝试这是连接: app.use(connect.multipart({ uploadDir: path })); 查看详细信息here

我个人做的是,我使用node fs从临时目录中复制文件并将其放在相关位置(如果您有不同目录的不同上传)。