<!-- Click "Preview" for a more readable version --

Please read and follow the instructions before submitting an issue:

- Read all our documentation, especially the [README](https://github.com/axios/axios/blob/master/README.md). It may contain information that helps you solve your issue.
- Ensure your issue isn't already [reported](https://github.com/axios/axios/issues?utf8=%E2%9C%93&q=is%3Aissue).
- If you aren't sure that the issue is caused by Axios or you just need help, please use [Stack Overflow](https://stackoverflow.com/questions/tagged/axios) or [our chat](https://gitter.im/mzabriskie/axios).
- If you're reporting a bug, ensure it isn't already fixed in the latest Axios version.
- Don't remove any title of the issue template, or it will be treated as invalid by the bot.

⚠️👆 Feel free to these instructions before submitting the issue 👆⚠️
-->

#### Describe the issue
Passing Uint8Array or Buffer to postForm results in "source.on is not a function" exception.

#### Example Code
```js
const data = Uint8Array.from([1, 2, 3])
axios.postForm('http://some.url', { data })

// or

const data = Uint8Array.from([1, 2, 3])
axios.postForm('http://some.url', { data: Buffer.from(data) })
```

#### Expected behavior, if applicable
axios should POST a field "data" with the content of the Uint8Array / Buffer

#### Environment
 - Axios Version 0.27.2
 - Node.js Version 18.2.0
 - OS: Windows 11

#### Additional context/Screenshots
Code is compiled from TypeScript using typescript 4.6.4 and a tsconfig.json that extends @tsconfig/node18/tsconfig.json

I am trying to upload the PDF output of puppeteer.


What am I doing wrong?
lib/helpers/fromDataURI.js
* @param {?Function} options.Blob
 * @returns {Buffer|Blob}
 */
module.exports = function fromDataURI(uri, asBlob, options) {
  var _Blob = options && options.Blob || platform.classes.Blob;
  var protocol = parseProtocol(uri);
  if (asBlob === undefined && _Blob) {
    asBlob = true;
  }
  if (protocol === 'data') {
    uri = uri.slice(protocol.length);
    var match = DATA_URL_PATTERN.exec(uri);
    if (!match) {
      throw new AxiosError('Invalid URL', AxiosError.ERR_INVALID_URL);
    }
    var mime = match[1];
    var isBase64 = match[2];
    var body = match[3];
    var buffer = Buffer.from(decodeURIComponent(body), isBase64 ? 'base64' : 'utf8');
    if (asBlob) {
      if (!_Blob) {
        throw new AxiosError('Blob is not supported', AxiosError.ERR_NOT_SUPPORT);
      }
      return new _Blob([buffer], {type: mime});
    }
    return buffer;
  }
  throw new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_NOT_SUPPORT);
};