NodeJS教程–基于ExpressJS框架的文件上传 看了上面一篇关于文件上传的这个代码,在测试windows下的时候是会报错,各位童鞋说了是因为windows下无法rename的原因! 就思考了下,如果只是图片一些小文件上传的话,我们可否去读取文件信息,然后在写回到一个新的文件,这样就不存在文件移动,但是会造成很多垃圾信息!
fs.readFile(tmp_path, function(error, data){
fs.writeFile(target_path, data, function (err) {
if (err) throw err;
console.log('It\'s saved!');
});
});
你确定上传成功了,找到临时文件先
嗯,我上传成功了~那个临时文件这样获取
var temp_path = req.files.uploadName.path
是成功滴~
@huangdh3 自己设置下临时路径吧
建议升级到8.0,我之前无法rename,现在成功了
8.o可以是把~谢了!
ie下上传图片,提示下载。楼主遇到过相同问题吗?
不懂,能说清楚点吗~
@huangdh3 搞定了,呵呵。是我上传后这样返回的res.send({ status: ‘success’, url: url });。windows ie会将返回来的json当成文件进行下载。后来我用text返回就好了。
/高明 @sinple
fs.rename(tmp_path, target_path, function(err) {
.....
// 删除临时文件夹文件,
fs.unlink(tmp_path, function() { ... });
});
如果rename调用成功的话,express会自动删除(unlink)临时文件吧。如果非rename返回的时候,才需要调用unlink,是这样吗?
是的,rename类似于linux中mv指令!
好东西 啊 我也推荐个教程吧 bbs.w3hacker.com
在windows下,如果上传目录和要移动的目标目录不在同一个磁盘上,rename会失败.