Kin*_*ave 12 javascript file-upload serverside-javascript node.js
我成功使用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!');
});
});
Run Code Online (Sandbox Code Playgroud)
BCG*_*BCG 19
问题是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; });
Run Code Online (Sandbox Code Playgroud)
表单是否设置为 enctype="multipart/form-data"?
我只在 Express 中使用过 formidable - Express 示例运行良好:
https://github.com/visionmedia/express/tree/master/examples/multipart
| 归档时间: |
|
| 查看次数: |
17260 次 |
| 最近记录: |