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();
});