rename出错Error EXDEV由于跨磁盘分区移动或操作文件会有权限问题(默认路径是window临时目录C:\Users\ADMINI~1\AppData\Local\Temp\)

解决办法

方法一
在项目入口的文件(app.js)的顶部, 加以下这行代码

1
2
3
process.env.TMPDIR = './temp';
// 或者
// process.env.TMPDIR = '/path/to/directory';

方法二
在项目根目录路径,在命令行下 输入

1
env TMPDIR=/path/to/directory node app.js

方法三
利用fs的createReadStreamcreateWriteSreamunlinkSync方法

1
2
3
4
5
6
7
8
9
10
var fs = require("fs"),
util = require('util');
...

var readStream = fs.createReadStream(files.upload.path)
var writeStream = fs.createWriteStream("/tmp/test.png");

util.pump(readStream, writeStream, function() {
fs.unlinkSync(files.upload.path);
});

方法四
如果使用 formidable

1
2
var form = new formidable.IncomingForm();
form.uploadDir = dir;// 直接设置路径即可