在node.js中使用formidable和express时如何更改上传路径

2023-11-23

实际上我遇到了两个问题

一、如何更改上传路径

我的文件夹结构是这样的:

|__app.js
|__upload

我的节点代码位于 app.js 中并从中启动, 所以我想将上传图片上传到上传文件夹,我更改路径:

var form = new formidable.IncomingForm;
form.uploadDir = "./upload";

看起来上传成功了,但是不知道文件去哪里了, 它不在上传文件夹中。

那么正确的路径名是什么?

第二个问题是

如果我不更改它,它可以正确上传到C:/Users/ADMINI~1/AppData/Local/Temp但它会被重命名而没有格式,

那么如何获取上传格式并自行重命名呢?

第三个问题是

我还将处理程序绑定到process事件, 喜欢

form.on('progress', function(bytesReceived, bytesExpected) {
    console.log(bytesReceived + ' ' + bytesExpected);
});

但它似乎不起作用,上传时没有记录任何内容。为什么?我错过了什么吗?

这是我的所有代码:

app.post('/upload', function (req, res) {
    var form = new formidable.IncomingForm;
    // form.uploadDir = "./upload";
    console.log(form.uploadDir);

    form.parse(req, function(err, fields, files){
      if (err) return res.end('You found error');
      console.log(files.image);
    });

    form.on('progress', function(bytesReceived, bytesExpected) {
        console.log(bytesReceived + ' ' + bytesExpected);
    });

    form.on('error', function(err) {
        res.writeHead(200, {'content-type': 'text/plain'});
        res.end('error:\n\n'+util.inspect(err));
    });

    // res.end('Done');
    res.send("well done");

    return;
})

首先,您必须告诉您的应用程序您不希望bodyParser处理文件上传。

app.use(express.bodyParser());

is 相等的 to

app.use(express.json());
app.use(express.urlencoded());
app.use(express.multipart());

删除最后一行以自行处理文件上传。初始化表单时添加一些自定义选项

var form = new formidable.IncomingForm({ 
  uploadDir: __dirname + '/tmp',  // don't forget the __dirname here
  keepExtensions: true
});

现在你的代码应该可以工作了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在node.js中使用formidable和express时如何更改上传路径 的相关文章

随机推荐

  • mongo - 无法连接到服务器 127.0.0.1:27017

    我来自 riak 和 redis 在这些服务启动或交互方面我从未遇到过问题 这是 mongo 的一个普遍问题 我很无能 重新启动没有帮助 我是 mongo 新手 mongo MongoDB shell version 2 2 1 conne
  • AVFoundation 元数据对象类型

    我尝试使用 AVFoundation 来读取带有以下代码的条形码 但我不断收到以下错误 帮助说明原因将不胜感激 提前致谢 Create camera view session AVCaptureSession var layer self
  • Toopay/bootstrap-markdown 的预览按钮不起作用

    我正在用 symfony 创建一个表单 我的表单的一个字段是textarea我想通过使用让它看起来更好引导降价 根据文档 我设置了属性 data provide to markdown 如下图所示 form row form descrip
  • Rails 从 Helper 模块返回多个 content_tag

    我写了以下助手 def section to html block case block 0 downcase when paragraph block shift block each do value return content ta
  • 如何创建可变变量?

    我知道一些其他语言 比如PHP 支持 变量变量名 的概念 即字符串的内容可以用作变量名的一部分 我听说这通常是一个坏主意 但我认为它可以解决我在 Python 代码中遇到的一些问题 在Python中可以做这样的事情吗 会出现什么问题 If
  • 如何使“过期”的 Firebase 实例 ID 令牌失效

    AFAIK Firebase实例令牌将在以下4种情况下刷新 应用程序删除实例ID 应用程序已在新设备上恢复 用户卸载 重新安装应用程序 用户清除应用数据 假设用户使用令牌 A 作为他的 FCM 地址 每次登录应用程序时 他都会将令牌 A 以
  • “找不到 CFBundle/CFPlugIn 的可执行文件”错误

    找不到 CFBundle CFPlugIn 0x432bfa0 的可执行文件 未加载 在 CFBundle CFPlugIn 0x432bfa0 中找不到工厂 C5A4CE5B 0BB8 11D8 9D75 0003939615B6 的函数
  • jqGrid - 动态设置标题

    我有captionjqGrid 定义中的参数集 我想知道是否有一种方法可以根据情况动态设置它classjqGrid 插件所附加的表元素的属性 HTML 1 table class view table div div HTML 2 tabl
  • 在 Linux 机器上创建自解压 zip 存档

    由于许多我不会涉及的限制 我必须在 Linux 机器上创建一个自解压 ZIP 存档 生成的存档只能在 Windows 上执行 这是可能吗 如果是这样 什么工具可以完成这项工作 背景 当用户从我的 Linux 盒子下载安装包时 我需要使用某个
  • 如果在单独的类中定义异常子句,Camel 异常处理将不起作用

    我正在尝试构建一个具有多个骆驼路线的应用程序 这些路线在内部重用许多常见路线 因此 我尝试将路由分隔在几个不同的路由生成器类中 然后在需要的地方连接路由 例如 与发送电子邮件有关的所有路由都进入 EmailRouteBuilder 类 而处
  • 使用 Laravel (Localhost) 通过表单将文件发送到电子邮件

    Laravel 新手 所以要友善 哈哈 我的 mail php 配置是正确的 并且可以成功接收电子邮件以进行 gmail 的文本输入 但不确定如何完成文件任务 我希望得到一些帮助或参考链接 提前致谢 代码在routes php中 Route
  • iOS 8 CoreBluetooth 已弃用 RSSI 方法

    所以从阅读CBPeripheralDelegate文档 看来RSSI and peripheralDidUpdateRSSI error iOS 8 中已弃用 Xcode 警告 iOS 8 0 中已弃用 rssi 我注意到我的信号强度指示器
  • 测量 Cortex m7 上的时钟周期数

    我一直在测量 Cortex m4 上的时钟周期计数 现在想在 Cortex m7 上进行测量 我使用的板子是STM32F746ZG 对于 m4 一切都适用 volatile unsigned int DWT CYCCNT volatile
  • R光栅包将图像分割成多个

    我有一个如下图 它是2579 2388像素 假设它的左下角位于 0 0 我想从该图像创建多个图像 如下所示并将它们保存在工作文件夹中 每个图像的大小为 100 100 像素 每个图像将通过其左下角坐标保存 第一张图像的左下角位于 0 0 右
  • 将通用列表转换为 CSV 字符串

    我有一个整数值列表 List 并且想生成一串逗号分隔值 即列表中的所有项目输出到单个逗号分隔列表 我的想法 1 将列表传递给方法 2 使用stringbuilder迭代列表并追加逗号 3 测试最后一个字符 如果是逗号 则将其删除 你怎么看
  • 在 dataclass(slots=True) 子类中调用 super() 时出现类型错误

    我试图从数据类调用超类方法slots True在 Python 3 10 5 中 from dataclasses import dataclass dataclass slots True class Base def hi self p
  • TK框架双重实现问题

    我正在测试使用 Tkinter 模块创建 GUI 我试图使用 PIL 将图像添加到 GUI 我的代码如下所示 import Tkinter as tk from PIL import Image ImageTk root tk Tk roo
  • 未找到活动数据。使用谷歌分析 v4

    我收到此错误 I GAV4 7915 Thread GAThread 5 main 未找到活动数据 有人知道我出了什么问题吗 我正在使用 Android API 级别 20 谷歌分析 v4 安卓设备4 2 2 Constants TRACK
  • 对 HTML 实体进行编码但忽略 HTML 标签 - 在 PHP 中

    我有一个可能看起来像这样的字符串 str p Me Mrs Jones br live in strong style color FFF Espa a strong p htmlentities str ENT COMPAT UTF 8
  • 在node.js中使用formidable和express时如何更改上传路径

    实际上我遇到了两个问题 一 如何更改上传路径 我的文件夹结构是这样的 app js upload 我的节点代码位于 app js 中并从中启动 所以我想将上传图片上传到上传文件夹 我更改路径 var form new formidable