Node.js 表格上传

Node.js 表格上传,node.js,formidable,Node.js,Formidable,我在服务器中收到以下文件 {"file":{"size":6818,"path":"/tmp/a451340156a9986cd9d208678bdc40cf","name":"test.pdf","type":"application/pdf","mtime":"2014-09-03T15:26:25.733Z"}} 我的文件上传处理如下: var form = new formidable.IncomingForm(); form.parse(req, function(e

我在服务器中收到以下文件

{"file":{"size":6818,"path":"/tmp/a451340156a9986cd9d208678bdc40cf","name":"test.pdf","type":"application/pdf","mtime":"2014-09-03T15:26:25.733Z"}}
我的文件上传处理如下:

var form = new formidable.IncomingForm();
        form.parse(req, function(err, fields, files) {
        console.log(JSON.stringify(files));

            // `file` is the name of the <input> field of type `file`
            var old_path = files.file.path,
            file_size = files.file.size,
            file_ext = files.file.name.split('.').pop(),
            index = old_path.lastIndexOf('/') + 1,
            file_name = old_path.substr(index),
            new_path = path.join(process.env.PWD, '/uploads/', file_name + '.' + file_ext);
            fs.readFile(old_path, function(err, data) {
                fs.writeFile(new_path, data, function(err) {
                    fs.unlink(old_path, function(err) {
                        if (err) {
                            res.status(500);
                            res.json({'success': false});
                        } else {
                            res.status(200);
                            res.json({'success': true});
                        }
                    });
                });
            });
        });

是路径还是文件名导致了问题

我首先使用rename函数简化代码。它看起来像这样

var newFilePath = path.join(process.env.PWD, 'uploads', files.file.name);
fs.rename(files.file.path,newFilePath,function(err){
  if(err){
     //handle error
  }
  res.json({success: 'true'});

});

您是否在将文件上载到所需文件夹时遇到问题?
var newFilePath = path.join(process.env.PWD, 'uploads', files.file.name);
fs.rename(files.file.path,newFilePath,function(err){
  if(err){
     //handle error
  }
  res.json({success: 'true'});

});