javascript – 使用NodeJS和节点强大的上传文件

我继续使用node.js和强大的模块上传文件,
在磁盘上保存的文件是某种格式不正确(错误编码)
例如如果我上传的图像我无法查看,如果我上传一个txt文件gedit提供以下msg:
“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类的一个实例.

看着:

https://github.com/felixge/node-formidable/blob/master/lib/file.js

而不是再次将文件写入磁盘,您可以直接访问上传文件的路径,并使用fs.rename()将其移动到所需位置:

fs.rename(files.upload.path,'yournewfilename',function (err) { throw err; });

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...