node-formidable / formidable

The most used, flexible, fast and streaming parser for multipart form data. Supports uploading to serverless environments, AWS S3, Azure, GCP or the filesystem. Used in production.
MIT License
7k stars 680 forks source link

fix: Use fileBegin hook to properly fail when maxFiles is exceeded #881

Closed coloursofnoise closed 1 year ago

coloursofnoise commented 1 year ago

Currently, using the "file" (file completion) hook to check the maxFiles restriction allows an extra file to be uploaded.

This is because if _error is called after the last file is uploaded, this.ended is already set to true and the error is ignored.

By using the "fileBegin" hook instead, the error is triggered before the file has finished uploading. This also allows the server to fail immediately upon the file upload, which means it doesn't have to wait for the extra upload that will be discarded anyways.

GrosSacASac commented 1 year ago

published as formidable@3.2.5