### Describe the bug

I need to send a big file of `~80MB` to a `lighthttp` server which accepts it as a form. For the purpose I use `form-data` since it is supported by `axios`. According to the documentation and several sources online the following should work:

```javascript
const formdata = require('form-data')
const fs = require('fs')
const https = require('https')
const axios = require('axios')

function _postRequest(file) {
    const request = {
        url: `https://<host>:8080/<endpoint>`,
        method: 'POST',
        body: new formdata(),
        maxContentLength: Infinity,
        maxBodyLength: Infinity,
    }
    request.data.append('file', fs.createReadStream(file), {
        knownLength: fs.statSync(file).size,
    })
    request.headers = request.data.getHeaders()
    //NOTE workaround for self-signed certificates
    request.httpsAgent = new https.Agent({ rejectUnauthorized: false })
    return axios(request)
}
```
However the request is rejected by my server. Logging with `NODE_DEBUG=http` (sorry I had also an interceptor log but I deleted it apparently) results in the following snippet:

```sh
{
  maxRedirects: 21,
  maxBodyLength: Infinity,
  protocol: 'https:',
  path: null,
  method: 'POST',
  headers: {
    Accept: 'application/json, text/plain, */*',
    'Content-Type': 'multipart/form-data; boundary=--------------------------375821630796827194957398',
    'User-Agent': 'axios/0.27.2',
    'content-type': 'multipart/form-data; boundary=--------------------------375821630796827194957398'
  },
```

On the other hand, the corresponding `node-fetch` function seems to work fine. Here is the code:
```javascript
const formdata = require('form-data')
const fs = require('fs')
const https = require('https')
const fetch = require('node-fetch')

function _postRequest( file) {
    const options = {
        method: 'POST',
        body: new formdata()
    }
    options.body.append('file', fs.createReadStream(file), {
        knownLength: fs.statSync(file).size,
    })
    options.headers = options.body.getHeaders()
    //NOTE workaround for self-signed certificates
    //if (true) {
    options.agent = new https.Agent({ rejectUnauthorized: false })
    //}
    return fetch(`https://<host>:8080/<endpoint>`, options)
}
```

And the logs look better:

```sh
headers: [Object: null prototype] {
    'content-type': [
      'multipart/form-data; boundary=--------------------------948324181019601509098137'
    ],
    Accept: [ '*/*' ],
    'Content-Length': [ '81992924' ],
    'User-Agent': [ 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)' ],
    'Accept-Encoding': [ 'gzip,deflate' ]
  },
```





### To Reproduce

_No response_

### Code snippet

_No response_

### Expected behavior

I would expect `axios` to correctly calculate the `Content-Length` and add it to the set of headers, much like `node-fetch` seems to do. 

### Axios Version

0.27.2, 1.1.3

### Adapter Version

_No response_

### Browser

_No response_

### Browser Version

_No response_

### Node.js Version

14.20.0

### OS

Fedora Linux 36

### Additional Library Versions

```bash
node-fetch@2.6.7
```


### Additional context/Screenshots

_No response_
lib/adapters/http.js
});
      }
      try {
        convertedData = fromDataURI(config.url, responseType === 'blob', {
          Blob: config.env && config.env.Blob
        });
      } catch (err) {
        throw AxiosError.from(err, AxiosError.ERR_BAD_REQUEST, config);
      }
      if (responseType === 'text') {
        convertedData = convertedData.toString(responseEncoding);
        if (!responseEncoding || responseEncoding === 'utf8') {
          data = utils.stripBOM(convertedData);
        }
      } else if (responseType === 'stream') {
        convertedData = stream.Readable.from(convertedData);
      }
      return settle(resolve, reject, {
        data: convertedData,
        status: 200,
        statusText: 'OK',
        headers: new AxiosHeaders(),
        config
      });
    }
    if (supportedProtocols.indexOf(protocol) === -1) {
      return reject(new AxiosError(
        'Unsupported protocol ' + protocol,
        AxiosError.ERR_BAD_REQUEST,
        config