使用 NodeJS 和 node-formidable 上传文件

2023-12-21

我使用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(使用前将#替换为@)

使用 NodeJS 和 node-formidable 上传文件 的相关文章

随机推荐

  • 使用 RSS feed XML 并显示信息

    我必须在 Windows Phone 7 应用程序中使用 feed XML RSS 并将这些信息显示在ListBox 我尝试按照以下方式读取 XML feed 中的内容 private void button1 Click object s
  • 为什么 gcc 不编译未初始化的全局 const?

    当我尝试使用 g 编译以下内容时 const int zero int main return 0 我收到一个关于uninitialized const zero 我认为全局变量默认初始化为 0 1 为什么这里的情况不是这样呢 VS 编译得
  • JDK8 中使用的 Rhino javascript JSR-223-wrapper 在哪里?

    我的目的是在 AdaptOpenJDK 8 VM 中提供 JSR 223 javascript 引擎 所以我想到使用已经熟悉的Rhino OpenJDK wiki 文档在这里 https wiki openjdk java net disp
  • 查找目录和子目录中的所有零字节文件

    如何查找目录及其子目录中的所有零字节文件 我已经这样做了 bin bash lns vdir R dir awk print 8 t 5 temp for file in lns do if test file 0 then printf
  • 显示详细信息转场时未调用 Deinit

    我在一个较大的 Swift 项目中遇到了这个问题 但能够在一个非常基本的项目中复制它 我有以下视图控制器类 class ViewController UIViewController deinit println Deinitializin
  • 双重比较零特殊情况?

    我正在初始化一个双数组 double foo new double n 我的理解是java语言规范导致数组中的所有值都初始化为零 当我执行算法时 数组中的一些条目被设置为正值 因此 要检查特定元素是否设置了非零值 仅使用是否安全 if fo
  • 理解Linux目录权限推理

    您好 我有两个关于 linux 目录权限的问题 我不明白 我从名为 Documents 的文件夹中删除了执行标志 之后我无法在其上使用 cd 但我仍然可以从父目录执行 ls Documents 它仍然列出 Documents 目录中的文件
  • 由于 float 和 double 的精度有限而导致的错误

    在C 中 我使用以下代码来计算由于float和double的精度有限而导致的误差的数量级 float n 1 float dec 1 while n n dec dec dec 10 cout lt lt dec lt lt endl 在
  • 使用 pelican-quickstart 时出错“没有名为 html_parser 的模块”

    我决定给予pelican尝试一下 但是当我跑步时pelican quickstart 我收到以下对话框 pelican quickstart Traceback most recent call last File usr local bi
  • 仅针对具有枚举非类型模板参数的 C++ 模板函数的特化

    这个问题与this one https stackoverflow com questions 2155491 hide function template declare specializations除了处理类型名模板参数之外 我尝试使
  • jquery ui datepicker后退按钮跳转到1899

    我一定是缺少某些设置或其他内容 但是当我使用后退按钮时 日期选择器会从当前年份跳转到 1899 年 有其他人看到这个并修复它吗 你可以看到我注释掉的不同组合 dialog search from datepicker defaultDate
  • 如何获得“nls”对象的漂亮乳胶输出

    我需要 nls 对象的 LaTex 表示 不幸的是 stargazer 不支持这种对象类型 网上的一些研究使我从 nls2 库中找到了 as lm nls 函数 它声称将 nls 对象转换为相应的 lm 对象 就我而言 它惨遭失败 以下是示
  • 对组中的浮点数列表进行排序

    我有一个浮点数数组 它是无序的 我知道这些值总是落在几个未知的点附近 为了便于说明 此列表 10 01 5 001 4 89 5 1 9 9 10 1 5 05 4 99 值集中在 5 和 10 附近 所以我想要 5 10 作为答案 我想找
  • 修改 htmlpurifier 允许的标记

    我的 html 净化器设置现在只允许这些标签 configuration gt set HTML Allowed p ul ol li 我想允许列表缩进 我的编辑器使用这个 html ul style margin left 40px 我应
  • android studio新建项目看不到src文件夹

    重新安装 android studio 后 我创建了一个新项目 MyapplicationProject 在 Windows 资源管理器中我看到所有文件夹 MyapplicationProject Myapplication libs sr
  • 在XSLT中声明全局变量,在本地重新赋值

    我可以在全局范围内声明一个值为 111 的变量 myVariable 但如何在本地重新赋值呢 或者有其他方法可以实现这一目标 请帮忙 谢谢 拉维 您可以在模板内重新定义相同的变量
  • “QwtLog10ScaleEngine”之前需要类型说明符吗?

    版本 qwt 6 0 1 我尝试开发频谱的对数缩放 我使用简单的线条来启用缩放plotspectrum gt setAxisScaleEngine QwtPlot yLeft new QwtLog10ScaleEngine 问题 数据未绘制
  • 如何在 Mac OS X 中生成核心转储?

    我似乎无法在 Mac OS X 10 6 8 中生成核心转储 ulimit c unlimited a out Hello world Segmentation fault find type f name core ls la cores
  • 如何在 java 中使用 Apache POI XWPF 将图片添加到 .docx 文档

    我使用 Java POI 3 7 创建了一个简单的 docx 文档 XWPF 然后 我添加了一张图片 使用该方法XWPFDocument addpicture byte arg0 int arg1 XWPFDocument docx new
  • 使用 NodeJS 和 node-formidable 上传文件

    我使用node js和强大的模块成功上传文件 保存在磁盘上的文件格式错误 编码错误 例如如果我上传图像我无法查看它 如果我上传 txt 文件 gedit 提供以下消息 gedit 无法检测到字符编码 请检查您是否没有尝试打开二进制文件 从菜