标签: formidable

NodeJs上传文件错误:请求已中止

我正在尝试从我正在使用Cordova(Phonegap)开发的应用程序上传文件(图片),但我总是获得一个Error: Request Aborted.一开始我使用的fs.readFile()是我读过的第一件事,但现在我使用Fomidable但是错误是一样的:

错误

Error: Request aborted
    at IncomingMessage.onReqAborted (../XAMPP/xamppfiles/htdocs/nodeyag/node_modules/express/node_modules/connect/node_modules/multiparty/index.js:131:17)
    at IncomingMessage.EventEmitter.emit (events.js:117:20)
    at abortIncoming (http.js:1912:11)
    at Socket.serverSocketCloseListener (http.js:1924:5)
    at Socket.EventEmitter.emit (events.js:117:20)
    at TCP.close (net.js:466:12)
Run Code Online (Sandbox Code Playgroud)

/ picUpload

var form = new formidable.IncomingForm();

form.parse(req,function(err,fields,files) {
    if(err) console.log(err);
    console.log(files);
});

form.on('end',function(fields,files) {
    // temporary location of the uploaded file
    var tempPath = this.openedFiles[0].path;
    // filename of the uploaded file
    var fileName = this.openedFiles[0].name,
    newPath = config.uploadPicsDir + '/docs/';

    var file = { tempPath: tempPath, fileName: fileName …
Run Code Online (Sandbox Code Playgroud)

file-upload node.js cordova formidable

5
推荐指数
1
解决办法
2671
查看次数

强大的获取参数未填充url中传递的值

网址样本:http//www.samplesite.com/?companyname = abcltd

我想在一个强大的隐藏字段中获取通过url传递的值。我在隐藏字段值中添加了[get param = companyname]。当我以管理员身份登录时效果很好。

但如果我注销,则尝试从url访问表单,该值不会在隐藏字段中填充。

function frm_set_checked($values, $field){

if($field->id == 104){

      $values['value'] =  $_GET['companyname'] ;

   }

}

add_filter('frm_setup_new_fields_vars', 'frm_set_checked', 8, 2);
add_filter('frm_setup_edit_fields_vars', 'frm_set_checked', 8, 3);
Run Code Online (Sandbox Code Playgroud)

也尝试使用钩子。同样的事情发生了。对于已登录的用户,它将在隐藏字段中填充参数值。对于未登录的用户,它不会在隐藏字段中填充参数值。

感谢您的任何帮助

wordpress-plugin getparameter formidable

5
推荐指数
1
解决办法
690
查看次数

使用node.js、node-formidable和socket.io向客户端发送上传进度更新

我的代码显示了一个简单的上传表单(node-formidablenode.js)。我用来socket.io更新客户端当前的上传文件进度。我的问题是我目前向每个客户发送进度更新。举个例子,如果我使用 clientA 开始上传,然后使用 clientB 连接到网站,clientB 将看到与 clientA 完全相同的进度条。通常情况下,clientA 和 clientB 应该不同,有各自的进度条,仅与各自的上传链接。

这是我的 app.js 文件

// Required modules
var formidable = require('formidable'),
    http = require('http'),
    util = require('util'),
    fs = require('fs-extra');

// Path to save file, server side
var savePath = "./uploadedFiles/";

// Loading index.html
var server = http.createServer(function(req, res) {
    // Form uploading Process code
    //Upload route
    if (req.url == '/upload' && req.method.toLowerCase() == 'post') {
        // creates a new …
Run Code Online (Sandbox Code Playgroud)

javascript file-upload node.js socket.io formidable

5
推荐指数
1
解决办法
1670
查看次数

强大的解析回调不会被调用并且没有错误

当我使用强大的解析函数时遇到问题。在我的项目中,我使用httpsys(不是内置的http模块)创建服务器(用于端口共享),然后发送带有多部分表单数据(包括字符串和zip文件)的post请求。然后我想使用formidable来解析请求体。但解析函数回调不会被调用。没有错误。我不使用 Express 应用程序,但我使用 Express Router 来路由我的请求。我已经使用错误处理程序来捕获错误,但它从未被调用(form.on('error', function(err) { console.log(err); });)。有人有同样的问题吗?请帮助我,提前致谢。

   // main.js
    var router = express.Router();
    router.use(function (req, res, next) {
    for (var i in req.headers) {
        req.headers[i] = querystring.unescape(req.headers[i]);
        req.headers[i] = req.headers[i].replace(/\+/g, "");
    }
    next();
   });
   //router.use(bodyParser());
    router.post('/TestServer/' + 'TestRequest', function(req, res) {
    testRequestHandler.execute(req, res);
    });
   var server = require('httpsys').http().createServer(router);
   var port = '80'; // or other port
   var listeningPort = 'http://localhost:' + port + '/TestServer/';
   server.listen(listeningPort );

   // In testRequestHandler
    var execute = function(req, res) {
    var form …
Run Code Online (Sandbox Code Playgroud)

node.js formidable

5
推荐指数
0
解决办法
1026
查看次数

在Firebase函数中使用强大

我有一个SendGrid'Inbound Parse Webhook'将已解析的电子邮件发布到Firebase Function。这会将multipart/form-data请求中的传入电子邮件发送到我的Firebase函数。

我正在尝试使用Formidable解析这些请求,但始终出现错误:

请求在IncomingMessage中终止。<匿名>

已在此处报告,解决方案似乎是关闭主体解析,但是在firebase函数中可能吗?

firebase formidable google-cloud-functions

5
推荐指数
0
解决办法
269
查看次数

如何在 node.js 中解析“multipart/mixed”?

我在 node.js 中看到了很多模块,比如 busboy , multer ,强大的但他们无法解析multipart/mixed正文。

multipart/mixednode.js中的请求示例

--batchbatch
Content-Type: multipart/mixed; boundary=changeset1

--changeset1
Content-Type: application/http
Content-Transfer-Encoding: binary

POST data HTTP/1.1
Content-Type: application/json
Content-ID: ID1
Content-Length: 10000

{
"Name": "ddd",
"data1": "3",
"data2": "40", 
"data3": "OPPT",
"data3":"D1000",
"dat4": "D1000"
}


--changeset1--

--batchbatch
Content-Type: multipart/mixed; boundary=changeset2

--changeset2
Content-Type: application/http
Content-Transfer-Encoding: binary

PATCH data/32451 HTTP/1.1
Content-Type: application/json
Content-ID: ID1
Content-Length: 10000

{
"code": "3"
}

--changeset2--
--batchbatch
Content-Type: multipart/mixed; boundary=changeset3

--changeset3
Content-Type: application/http
Content-Transfer-Encoding: binary

DELETE /data/2345 HTTP/1.1


--changeset3--
--batchbatch--
Run Code Online (Sandbox Code Playgroud)

node.js formidable multer busboy

5
推荐指数
0
解决办法
485
查看次数

当我在 Node.js 中上传文件时,Formidable 总是返回空字段和文件

基本上我想从本地计算机上传一个 csv 文件并在后端解析它以执行所需的操作。我在前端附加了 csv 文件。检查它不为空。但我无法在服务器中获取相同的内容。我是否遗漏了某些内容或以错误的方式执行了某些操作?

这是我到目前为止所尝试过的。

前端代码:

   <form id="myForm" method="POST" enctype="multipart/form-data" action='/testcsv' >
            <input type="file" id="file"  />
            <input type="submit" value="Submit">
   </form>
Run Code Online (Sandbox Code Playgroud)

后端代码:

 var express = require('express');
 var methodOverride = require('method-override');
 var http = require('follow-redirects').http;    
 var formidable = require('formidable');
 var app = express();
 const fs = require('fs');
 app.use(methodOverride('_method'));

 var bodyParser = require('body-parser');
 app.use(bodyParser.json()); // support json encoded bodies
 app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies



 app.post('/testcsv', requireLogin,  function(req, res) {

 var form = new formidable.IncomingForm();

 form.parse(req, function(err, fields, files) { …
Run Code Online (Sandbox Code Playgroud)

file-upload node.js formidable

4
推荐指数
1
解决办法
5141
查看次数

nodejs 强大的异步问题

我正在使用强大的 3rd 方模块开发 nodejs 应用程序。我正在尝试获得对下面 form.parse 方法返回的 webform 字段的全局范围访问(请参阅下面的 var formfields)。首先,form.parse 是一个异步操作,根据此处的模块文档:https : //github.com/felixge/node-formidable旨在接受回调。我正在这样做,请参阅传递给 form.parse 的匿名函数。

我的问题是,无论我做什么,我都无法让 form.parse 将字段对象正确返回到全局上下文/范围中的 formfields 变量。我已经尝试了(几天)回调函数和返回辅助函数等的闭包的各种组合。但没有运气。

我想做的基本事情是:

var form = new formidable.IncomingForm();
form.encoding = 'utf-8';
var formfields = form.parse(req, function (err, fields, files) {
  console.log("within form.parse method, subject field of fields object is: " + fields.subjects);
  return fields;
}); // form.parse

console.log("type of formfields is: " + typeof formfields);
console.log("subject field of formfields object is: " + formfields.subjects);
Run Code Online (Sandbox Code Playgroud)

但是正如您从下面的 console.log 输出中看到的那样,即使我正在使用回调,执行也会“下降”到最后 2 行 …

javascript node.js formidable

4
推荐指数
1
解决办法
4854
查看次数

我应该选择哪个版本的Node.js.

我计划构建一个基于Node.js的Web应用程序.作为一个常识,我安装了最新版本的Node.js(v0.10.0).我还建议使用express.js以避免使用低级API.

当我试图安装express.js包时,我发现它无法安装,因为缺少一些依赖.所以,我试图逐个安装所有缺失的依赖.除了formidable.js之外,所有包都可以安装,这需要node.js版本小于0.9.0("node":"<0.9.0")}.我很沮丧,因为对于我的新开发,我想使用最新的stalbe版本的Node.js,而不是选择一个非常早期的版本(0.9.0).

所以,如果我仍然想使用express.js,我真的应该将我的node.js回滚到早期版本(<0.9.0)吗?

node.js express formidable

3
推荐指数
1
解决办法
2198
查看次数

Firebase 托管和云功能无法与强大一起使用:传入表单不是构造函数

我用来express处理发布请求并且难以解析上传的文件:

import * as admin from "firebase-admin";
import * as functions from "firebase-functions";
import * as formidable from "formidable";
import * as util from "util";
import * as express from "express";

admin.initializeApp();
const app = express();

app.post("/image", (req, res) => {
  const form = new formidable.incomingForm();
  form.parse(req, async function(err, fields, files) {
    res.writeHead(200, { "content-type": "text/plain" });
    res.write("received upload:\n\n");
    res.end(util.inspect({ fields: fields, files: files }));
  });
});

export const api = functions.https.onRequest(app);
Run Code Online (Sandbox Code Playgroud)

我已经在 firebase.json 中重写了源代码和函数。Internal Server Error …

express firebase formidable firebase-hosting google-cloud-functions

3
推荐指数
1
解决办法
2751
查看次数