### Describe the bug

Relying on axios automatic serialization to create a form-data results in this error. The following lines are responsible of this error : https://github.com/axios/axios/blob/release/dist/node/axios.cjs#L2654 (mainly the `getLengthSync` function)

According to [form-data themselves](https://github.com/form-data/form-data), using `getLengthSync` is [not recommended](https://github.com/form-data/form-data/blob/master/Readme.md?plain=1#L350).

### To Reproduce

- Create a file buffer with `fs.createReadStream`
- Set HTTP header `Content-Type` to `multipart/form-data` to make use of [automatic serialization](https://github.com/axios/axios#-automatic-serialization-to-formdata)
- Get the form-data `Cannot calculate proper length in synchronous way.` error

### Code snippet

```js
const axios = require("axios");
const fs = require("node:fs");
const fileBuffer = fs.createReadStream("./file.ext");

axios.post('https://httpbin.org/post', {file: fileBuffer}, {
  headers: {
    'Content-Type': 'multipart/form-data'
  }
})
.then(({data}) => console.log(data))
.catch((err) => console.error(err));
```


### Expected behavior

The content length should be calculated without throwing any error.

### Axios Version

1.3.0

### Adapter Version

_No response_

### Browser

_No response_

### Browser Version

_No response_

### Node.js Version

16.19.0

### OS

_No response_

### Additional Library Versions

_No response_

### Additional context/Screenshots

_No response_
test/unit/adapters/http.js
});
  });
  it('should able to cancel multiple requests with CancelToken', function(done){
    server = http.createServer(function (req, res) {
      res.end('ok');
    }).listen(4444, function () {
      var CancelToken = axios.CancelToken;
      var source = CancelToken.source();
      var canceledStack = [];
      var requests = [1, 2, 3, 4, 5].map(function(id){
        return axios
          .get('/foo/bar', { cancelToken: source.token })
          .catch(function (e) {
            if (!axios.isCancel(e)) {
              throw e;
            }
            canceledStack.push(id);
          });
      });
      source.cancel("Aborted by user");
      Promise.all(requests).then(function () {
        assert.deepStrictEqual(canceledStack.sort(), [1, 2, 3, 4, 5])
      }).then(done, done);
    });
  });
  describe('FormData', function () {
    describe('form-data instance (https://www.npmjs.com/package/form-data)', (done) => {
      it('should allow passing FormData', function (done) {
        var form = new FormDataLegacy();
        var file1 = Buffer.from('foo', 'utf8');