代码
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();
});
异常信息
返回绑定(bind).rename(pathModule._makeLong(oldPath)),
错误:ENOENT,没有这样的文件或目录 'C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\esdafdace32323432a3f'
在 Object.renameSync(fs.js:330:18)
最佳答案
这是因为fs.rename()
can't move file between two different disks
其他renameSync
不会创建新文件夹,因此您应该确保tmp/
必须存在。
您需要在源代码文件夹中创建 tmp 文件夹,然后设置 uploadDir
如下:
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();
});
关于exception - 为什么使用nodejs上传异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10084000/