首页 > 解决方案 > 文件上传不超过 64kb - multer 或强大 - nodejs, nuxt

问题描述

下午好,

我正在为路线上传文件并上传。我已经用强大的和现在的 multer 尝试过,但只复制了 64kb 的文件。示例:如果文件为 100kb,则只有 64kb,其余部分丢失。

放置 cconsole.log ("passed") 时,它只显示 64kb 以下的文件,最大的甚至不输入。非常感谢您提前。

代码客户端:

<template>
    <input type="file" name="image" id="image" @change="uploadDocument">
</template>


<script>
import { mapState, mapGetters } from "vuex";

export default {
  name: "teste",
  data() {
    return {
      fileError: "",
      selectedFile: [],
      selectedDocType: [ "KYC_DOCUMENT", "KYC_SELFIE", "KYC_ADDRESS"],
      imgSrc: "",
      Index: -1,
    };
  },
  methods: {
    async uploadDocument(event) {
        const input = event.target;

        const formData = new FormData();
    
        formData.append("kycImage", input.files[0]);

        let config = {
            headers: {
                'Accept': 'application/json',
                'Content-Type': 'multipart/form-data;',
            }
        };

        const { data } = await this.$axios.post("/upload/sendFile", formData, config);
     }
  }
};
</script>

代码服务器:

var express = require('express');
var router = express.Router();
const bodyParser = require('body-parser');
const multer = require('multer');

const upload = multer({ dest: 'C:\\Users\\Giovane\\Documents\\upload' })

var app = express();
app.use(bodyParser.json({ limit: "50mb" }));
app.use(bodyParser.urlencoded({ limit: "50mb", extended: true, parameterLimit: 50000 }));

router.post('/sendFile', upload.single('image'), function(req, res, next){
    console.log(req)
});

module.exports = router;

OBS:服务器或客户端均未出现错误

标签: node.jsaxiosnuxt.jsmulter

解决方案


我最近遇到了同样的问题,现在找到了解决方案。在 multer 之前执行的中间件中,我将 req.connection 设置为 mysql 连接对象。

对大于 64kb 的快速服务器的请求似乎是作为流发送的,因此它们必须使用请求中的快速连接对象进行处理。


推荐阅读