我使用node.js和强大的模块成功上传文件,
保存在磁盘上的文件格式错误(编码错误)
例如如果我上传图像我无法查看它,如果我上传 txt 文件 gedit 提供以下消息:
“gedit 无法检测到字符编码。
请检查您是否没有尝试打开二进制文件。
从菜单中选择字符编码,然后重试。”
这是代码:
form.encoding = 'utf-8';
form.parse(req, function(err, fields, files) {
fs.writeFile('test.js', files.upload,'utf8', function (err) {
if (err) throw err;
console.log('It\'s saved!');
});
});
问题是 files.upload 不是文件的内容,它是来自 node-formidable 的 File 类的实例。
Look at:
https://github.com/felixge/node-formidable/blob/master/lib/file.js https://github.com/felixge/node-formidable/blob/master/lib/file.js
您无需再次尝试将文件写入磁盘,只需访问上传文件的路径,然后使用 fs.rename() 将其移动到您想要的位置:
fs.rename(files.upload.path, 'yournewfilename', function (err) { throw err; });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)