为什么使用nodejs上传exception
码
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信息
返回binding.rename(pathModule._makeLong(oldPath)),
错误:ENOENT,没有这样的文件或目录'C:\ DOCUME〜1 \ ADMINI〜1 \ LOCALS〜1 \ Temp \ esdafdace32323432a3f'
在Object.renameSync(fs.js:330:18)
这是因为fs.rename()
不能在两个不同的磁盘之间移动文件
其他renameSync
不会创build新的文件夹,所以你应该确保tmp/
is必须存在。 您需要在您的源代码文件文件夹中创buildtmp文件夹,然后像这样设置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(); });