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!');
});
});
回复 (13)
S
ie下上传图片,提示下载。楼主遇到过相同问题吗?
H
引用 sinpleie下上传图片,提示下载。楼主遇到过相同问题吗?
不懂,能说清楚点吗~
S
引用 sinpleie下上传图片,提示下载。楼主遇到过相同问题吗?
@huangdh3 搞定了,呵呵。是我上传后这样返回的res.send({ status: 'success', url: url });。windows ie会将返回来的json当成文件进行下载。后来我用text返回就好了。
S
fs.rename(tmp_path, target_path, function(err) {
.....
// 删除临时文件夹文件,
fs.unlink(tmp_path, function() { ... });
});
如果rename调用成功的话,express会自动删除(unlink)临时文件吧。如果非rename返回的时候,才需要调用unlink,是这样吗?
H
M
在windows下,如果上传目录和要移动的目标目录不在同一个磁盘上,rename会失败.
S
你确定上传成功了,找到临时文件先
H
引用 sumory你确定上传成功了,找到临时文件先
嗯,我上传成功了~那个临时文件这样获取
var temp_path = req.files.uploadName.path
是成功滴~
S
引用 sumory你确定上传成功了,找到临时文件先
@huangdh3 自己设置下临时路径吧
V
建议升级到8.0,我之前无法rename,现在成功了
H
引用 voidjs建议升级到8.0,我之前无法rename,现在成功了
8.o可以是把~谢了!
H
引用 sinpleie下上传图片,提示下载。楼主遇到过相同问题吗?
/高明 @sinple
W
好东西 啊 我也推荐个教程吧 bbs.w3hacker.com
参与回复
登录后即可参与回复。登录