【问题标题】:Multipart to upload a file throws error多部分上传文件会引发错误
【发布时间】:2018-02-21 14:39:57
【问题描述】:

我一直在尝试从浏览器上传一个 csv 文件来表达 js,然后从那里发送一个 post 调用到另一个 url 以使用 multipart 上传相同的文件。但它会引发如下错误

Argument error, options.multipart.
Error: Argument error, options.multipart.
    at Multipart.isChunked (d:\avx_node_poc\avx-webApp\node_modules\request\lib\multipart.js:21:32)
    at Multipart.onRequest (d:\avx_node_poc\avx-webApp\node_modules\request\lib\multipart.js:104:22)
    at Request.multipart (d:\avx_node_poc\avx-webApp\node_modules\request\request.js:1270:19)
    at Request.init (d:\avx_node_poc\avx-webApp\node_modules\request\request.js:406:10)
    at new Request (d:\avx_node_poc\avx-webApp\node_modules\request\request.js:128:8)
    at request (d:\avx_node_poc\avx-webApp\node_modules\request\index.js:53:10)
    at d:\avx_node_poc\avx-webApp\routes\index.js:231:5
    at Layer.handle [as handle_request] (d:\avx_node_poc\avx-webApp\node_modules\express\lib\router\layer.js:95:5)
    at next (d:\avx_node_poc\avx-webApp\node_modules\express\lib\router\route.js:137:13)
    at Route.dispatch (d:\avx_node_poc\avx-webApp\node_modules\express\lib\router\route.js:112:3)

下面是快递代码

const express = require('express');
const http = require('http');
const router = express.Router();
const request = require('request');
const multer  = require('multer');
const upload = multer();

const prop = {
    protocol: "http:",
    host: '192.168.138.171',
    port: 7300
};

/* uploadAndValidateUsers call */
router.post('/uploadAndValidateUsers', upload.single('userFile'),function(req, res, next) {
    console.log(req.file);
    request({
        url: prop.protocol + "//" + prop.host + ":" + prop.port + "/avxui/" + req.url,
        headers: {
            "Cookie": req.headers['cookie'],
            "Content-Type": req.headers['content-type']
        },
        method: req.method,
        multipart: req.file
    }).pipe(res);
});

module.exports = router;

【问题讨论】:

  • req.file 的内容怎么样?
  • This 似乎你也可以让它适用于你的情况。
  • @ViKiG { 字段名:'userFile',原始名称:'SampleUser.csv',编码:'7bit',mimetype:'application/octet-stream',缓冲区: 7, 4大小:226 }
  • multipart 选项采用对象数组。看here

标签: node.js express multer


【解决方案1】:

您缺少deststorage 选项

var upload = multer({ dest: 'uploads/' })

multer options

【讨论】:

  • 错误似乎是在request multipart 选项中抛出的。
猜你喜欢
  • 2017-02-11
  • 1970-01-01
  • 1970-01-01
  • 2017-02-25
  • 2017-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多