简体   繁体   English

Node.js读取multipart / form-data POST

[英]Node.js read multipart/form-data POST

Im passing a file to node.js with AJAX. 我用AJAX将文件传递给node.js。 the file is passed as a Base64 string and I pass it using multipart/form-data. 该文件作为Base64字符串传递,我使用multipart / form-data传递它。 The AJAX part work flawlessly, but I need to have said string stored on a variable in server side ie in Node.js. AJAX部分完美无缺,但我需要将所述字符串存储在服务器端的变量中,即Node.js. Now, on PHP this would be super easy: 现在,在PHP上,这将非常简单:

$someVar = $_POST["myBase64EncodedFile"];

How can I achieve exactly that but with Node.js? 我如何使用Node.js实现这一目标? I have to use Node.js and I dont want the file to be saved in some temp folder, I just need the string on a variabe. 我必须使用Node.js,我不希望文件保存在某个临时文件夹中,我只需要变量上的字符串。 Any ideas? 有任何想法吗? Thanks. 谢谢。

只需使用Request.body对象:

let someVar = req.body["myBase64EncodedFile"];

use formidable modules. 使用强大的模块。

in express , you can ues it like this: 在快递中,你可以这样:

var formidable = require('formidable');
const form = new formidable.IncomingForm();
function handlerFormByEvent(req, res, next) {
  form
    .parse(req)
    .on('fileBegin', (name, file) => {
      console.time('start');
      console.log('name', name);
      file.path = `uploads/${file.name}`;
    })
    .on('progress', (accepted, total) => {
      console.log(`accept:%d,total:%d`, accepted, total);
    })
    .on('field', (name, field) => {
      console.log('field', name, field);
    })
    .on('file', (name, file) => {
      // handle file
      console.log('name', name);
      console.log(file.toJSON());
    })
    .on('aborted', error => {
      let message = error.message;
      res.render('error', { message, error });
    })
    .on('error', err => {
      console.error('Error', err);
      let message = err.message;
      res.status(err.status || 500);
      res.render('error', { message, error: err });
    })
    .on('end', () => {
      res.end('ok');
    });
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 尝试使用node.js supertest发布multipart / form-data - Trying to post multipart/form-data with node.js supertest Node.js:发出多部分/表单数据发布请求时出现 ECONNRESET? - Node.js: ECONNRESET when making multipart/form-data post request? 从Node.js中的Buffer解析multipart / form-data - Parse multipart/form-data from Buffer in Node.js 使用内置的http模块,使用multipart / form-data和node.js上载图像 - Uploading Images using multipart/form-data with node.js using the in-build http module 使用Android 7和Node.js在multipart / form-data中发送参数 - Sending parameters in multipart/form-data using Android 7 and Node.js 无法使用Node.js正确解析Azure函数中的多部分/表单数据 - Can't properly parse multipart/form-data inside Azure functions using Node.js 将node.js多部分/表单数据本地文件上传到api - node.js multipart/form-data local file upload to api 节点js POST请求multipart / form-data,如何更改名称属性 - node js POST request multipart/form-data, how to change name attribute 如何在 Node.js 后的表单数据中获取额外的表单字段 - how to get extra form fields in form-data in post Node.js 使用Node.js和浏览器进行HTTP POST原始二进制数据,而无需使用表单数据 - HTTP POST raw binary data with Node.js and browser, without using form-data
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM