Why use nodejs upload exception

code

form.parse(request, function(error, fields, files) {
    console.log('parsing done');

    fs.renameSync(files.upload.path, 'c:/tmp/test.png');
    response.writeHead(200, {'Content-Type': 'text/html'});
    response.write('received image:<br/>');
    response.write('<img src="/show" />');
    response.end();
});


exception info

return binding.rename(pathModule._makeLong(oldPath)),

Error:ENOENT, no such file or directory 'C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\esdafdace32323432a3f'
     at Object.renameSync(fs.js:330:18)

This because fs.rename() can't move file between two different disks
Other renameSync doesn't create new folder, so you should ensure the tmp/ is must exist. You need creat tmp folder in your sourcecode file folder,then set the uploadDir like so:

var form = new formidable.IncomingForm();
  form.uploadDir = "tmp";
  console.log("about to parse");
  form.parse(request, function(error, fields, files) {
    console.log(files.upload.path);
    try{
        fs.renameSync(files.upload.path, "tmp/test.jpg");
    }catch(e){
        console.log(e);
    }
    response.writeHead(200, {"Content-Type": "text/html"});
    response.write("received image:<br/>");
    response.write("<img src='/show' />");
    response.end();
  });