загрузка файлов не превышает 64 КБ — multer или грозный — nodejs, nuxt

#node.js #axios #nuxt.js #multer

#node.js #axios #nuxt.js #малтер

Вопрос:

Добрый день,

Я загружаю файл для маршрута и выгружаю. Я пробовал это с грозным, а теперь с мультером, но копируется только 64 КБ файла. Пример: если файл имеет размер 100 КБ, только 64 КБ, а остальное теряется.

При размещении cconsole.log («передано») отображаются только файлы размером менее 64 КБ, самые большие из них даже не вводятся. Заранее большое вам спасибо.

кодовый клиент:

 <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:
Ошибка не появляется ни на сервере, ни на клиенте

Ответ №1:

Недавно у меня была такая же проблема, и теперь я нашел решение. В промежуточном программном обеспечении, выполняемом перед multer, я установил req.connection для объекта подключения mysql.

Похоже, что запросы к экспресс-серверу, размер которых превышает 64 КБ, отправляются в виде потока, и поэтому они должны обрабатываться с помощью объекта express-connection в запросе.