const path = require('path');
const fs = require('fs');
const formidable = require('formidable')
const code = require("../maps/rcodeMap");
const configPath = require('../configs/path.json')

function upload(req,res,next){
    let form = new formidable.IncomingForm();
    let allFile = [];
    form.uploadDir = configPath.tmp;
    form.type = true;
    form.on('progress', function(bytesReceived, bytesExpected) { //在控制台打印文件上传进度
        let progressInfo = {
            value: bytesReceived, //当前进度
            total: bytesExpected //总进度
        };
        let bar_progress = Math.floor((progressInfo.value / progressInfo.total) * 100);
        console.log(`当前进度: ${bar_progress}`);
    }).parse(req, function(err, fields, files) {
        console.log(fields);
        console.log(files);
        if (err) {
            console.log(`文件接收失败${err}`);
            res.json({
                rcode: code.customError,
                msg: '文件上传失败'
            })
        }else{
            console.log('文件上传成功')
            console.log(fields)
            console.log('文件数量'+files.length)
            req.files = files;
            req.body = fields;
            next();
        }
    })
}

module.exports = upload;