问题标签 [multiparty]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
729 浏览

node.js - 使用 angularjs 和 nodejs 的正文解析器的多方文件上传问题

尝试将文件从 Angularjs UI 上传到 nodejs 服务器但遇到 bodyparser 问题,添加限制会抛出 -

"SyntaxError: Unexpected token - in JSON at position 0",

如果未添加限制,则抛出 -

“有效载荷太大”

我正在使用 connect-multiparty 中间件来上传文件。在 bodyparser 中尝试使用 {limit: '50mb'} 并且也没有任何限制。

用户界面代码 -

Nodejs(服务器代码)-

0 投票
1 回答
4881 浏览

node.js - 获取错误:uncaughtException:source.on 不是函数,当对 multipart/form-data 使用请求和多方时

我正在尝试将数据从我的节点应用程序发送到第 3 方 HTTP 端点。

我正在使用多方模块解析来自客户端的请求对象上的数据,并通过请求模块发送数据。我收到错误

错误:uncaughtException:source.on 不是函数

obj 包含 headers、url、auth obj,然后reqOptions我们将表单数据添加到它。

当我记录表单数据时,它看起来格式正确

}

0 投票
0 回答
1733 浏览

html - 将 Webapp 上的文件上传到 Docker 容器中

我一直在谷歌搜索,似乎无法找到答案。如果这是一个菜鸟问题,我深表歉意,因为我对 Docker 仍然非常陌生。

设想:

我有一个带有 NodeJS 后端的 dockerized Web 应用程序。在网站上,我需要能够上传文件并将它们的路径存储在数据库(MSSql 数据库容器)中。当我在节点端使用多方上传文件时,它会为其提供文件的临时路径。在 Windows 上,它的 ...../AppData/Local/Temp/.... 在 Linux 上,它看起来是 /tmp/... 然后,我使用此路径作为从不同页面打开文件的链接. 在 Windows 上,在本地运行应用程序(无 dockerizing),我可以访问该文件(不包括阻止下载的 Chrome 安全功能)。但是,在 Linux 和 dockerized 上,没有文件。我将在底部附上我的文件上传代码。

我知道 docker 容器不像普通的 Web 应用程序那样与主机的文件系统通信。我的文件没有存储在 /tmp 文件夹中,因为我已经在那里检查过了。我的猜测是它以某种方式将其存储在容器中。

我的困惑在于如何存储这些文件。卷似乎是用于将文件加载到容器中,而存储驱动程序似乎除了配置它们之外你可以乱用(如果重要的话,我正在使用 overlay2)。如何将上传的文件存储在我的容器中,以便我可以存储它们的路径并稍后再次访问它们?

更新: 我能够使用以下方法为我的容器设置卷/绑定挂载:

我将我的解析方法更新为:

当我上传文件时,我确实看到这个副本按预期显示在主机目录中。但是,当我使用完整路径 /var/opt/tmp/FILENAME 单击 html 页面上的文件链接时,它说无法获取 /var/opt/tmp/FILENAME。我确定这与我的 html 中的权限或 href 不正确有关,但我不确定。我对网络开发很陌生。

如何获取 html 页面上的链接以从目录下载此文件?请让我知道这是否超出了原始问题的范围,我会提出一个新问题。

0 投票
0 回答
66 浏览

node.js - Azure 应用服务中的 res.write() 不适用于连续上传进度

我已经对上传文件(1.2 GB 大小)进行了编码,我需要知道上传的进度。我在节点 js 中使用多方模块来处理多部分文件。该模块具有某些事件,例如“进度”,“部分”等,我可以通过这些事件跟踪文件上传和处理。在 localhost 上,以下代码可以正常工作,并为每个上传的块提供 console.log() 和 res.write(),但是当我在 Azure Web App 服务中托管应用程序并查看日志时,console.log() 会停止在随机线上,经过一段时间后,它说请求被中止。

正如节点 js 中的文档在 [ https://nodejs.org/api/http.html#http_response_write_chunk_encoding_callback][1]中所说:“这会发送一个响应主体的块。可以多次调用此方法以提供连续的部分身体的。”

我假设我可以多次调用 res.write() ,这会将缓冲的信息发送到客户端(这在 localhost 但在 Azure 应用程序服务上以我想要的方式工作)注意:我正在更改请求的超时限制进行中,以免上传超时。

在本地主机上它看起来像这样:

但在 Azure 上它看起来像这样

但有趣的是,当我删除 res.write() 行并将其部署在 Azure 中时,它可以很好地处理上传,只是我没有得到连续的上传响应。

0 投票
1 回答
372 浏览

javascript - 使用 fs 写入文件后无法读取文件

我想读取一个图像,将其写入一个文件夹并再次读取它以获得它的 base64 我收到以下错误:错误:ENOENT:没有这样的文件或目录,访问 'C:\Workspace\Project\upload_storage\image.jpg ' 在 Object.accessSync (fs.js:192:3)

我的代码:

...

如果我评论 base64Encode 函数调用文件被创建。我究竟做错了什么?

0 投票
1 回答
340 浏览

node.js - 如何在 nodeJS 中使用 FileSystem 删除文件?

我不知道为什么,但我无法使用unlink()and删除文件unlinksynk()

我已经使用multiparty.Form()方法存储了文件。它将生成具有随机名称的文件并返回filePathoriginalFileName. 在此之后,我已将文件重命名为originalFileName.

代码:

deleteFile() 的代码

编辑 :

错误是,在删除文件时,编译器说Error: EBUSY: resource busy or locked, unlink

而且我认为我没有在程序中的任何地方使用该文件?

提前致谢 。

0 投票
1 回答
91 浏览

javascript - 多部分表单,字段/文件的顺序

我的 API 需要处理文件上传以及电子邮件中的附件。电子邮件通过 Sendgrid 的邮件解析功能路由到我的 API。

这两种方法都会产生多部分形式。在电子邮件的情况下,字段是“to”、“from”等。在普通的上传表单中,我决定字段。

我不想处理本地临时文件,所以理想情况下我只需将文件流通过管道传输到 S3。我已经实现了这个并且效果很好。但是有边缘情况..

在将文件传输到 S3 之前,我想确保电子邮件是合法的。我通过检查 from 和 to 地址来做到这一点。不幸的是,多部分表单没有指定字段/文件的特定顺序,而是规范说要保留原始表单的顺序。

问题

有时我会收到来自 Sendgrid 解析的电子邮件,这些电子邮件在文件之后字段到达的位置。

因此,为了通过表单字段验证发件人,我可能需要在等待字段数据时缓冲文件。这似乎是处理传入文件的一种非常愚蠢的方式,即在我什至不知道是否应该处理它们之前就开始处理/存储文件。

所有发送到指定子域的电子邮件都会从 Sendgrid 转发到我的服务器。这意味着我可能会被电子邮件淹没,我必须完全处理这些电子邮件(包括缓冲文件),然后才能确定电子邮件是否合法。

问题

我误解了什么吗?

一些电子邮件客户端推迟下载附件。这是怎么做到的?

我正在使用的工具

  • 节点.js

  • 多方

  • 发送网格解析

0 投票
1 回答
41 浏览

node.js - Express 限制文件大小 azurewebsites

我正在尝试将文件从前端上传到后端并将文件存储在 azurestorage 上,当文件大小小于 30mb 时我的代码工作正常,但如果文件大小大于 30mb 则不起作用

如果文件大于 30mb,则不显示 console.log。

在本地主机中它每次都可以工作,如果大小大于 30mb(我用 104mb 文件测试)但是当代码在天蓝色(azurewebsites)中时,它不起作用

快递:v4.16.4 节点:v12.16.2

0 投票
1 回答
660 浏览

javascript - 使用 CKEditor 上传图像并在 html 中显示 img src(编辑器数据) - Reactjs

下面是它在代码中的样子:

在 server.js 中,我使用 Multiparty 上传图片:

这就是它在 console.log 中的样子

从 console.log (整个对象):

图像被上传到文件夹中: 在此处输入图像描述

问题:我无法在编辑器数据中显示 img src

0 投票
0 回答
45 浏览

node.js - 获取超过 2097152 字节的 DelayedStream#maxDataSize。通过代理上传文件时

我已经为使用多方的文件上传编写了一个 nodejs 代理。在代理中,我们调用 sqlite store 获取环境详细信息并将数据发送到上游服务器进行上传。

前端代码

代理代码

该代码适用于小文件,但不适用于大文件。对于出现以下错误的大文件:

如果我对主机和端口进行硬编码而不是从 sqlite db 获取它,则相同的代码可以工作。知道问题可能是什么以及如何解决?