Upload Plugin: Filenames Automatically Replacing - with _ (Needs Config Option)
### Node Version

20.0.0

### NPM/Yarn/PNPM Version

NPM 10.5.0

### Strapi Version

5.9.0

### Operating System

Linux (RedHat/CentOS)

### Database

PostgreSQL

### Javascript or Typescript

Typescript

### Reproduction URL

_No response_

### Bug Description

Preserving media filenames during upload should be an option or overall configuration. Every file that gets uploaded gets `-` stripped out and replaced with `_` and a hash(not actually a hash) appended as the suffix. Strapi pulls in a `string.js` in core/util that has the methods

**Actual Behavior**
Strapi forces - to _ replacements on filenames.
Overrides to formatFileInfo(), uploadFileAndPersist(), and other lifecycle hooks do not work.
Filenames appear correct in the UI but are stored "incorrectly" in the database and on disk.

**Proposed Fix**
Introduce a keepOriginalFilename config option in config/plugins.ts.
Allow developers to override filename processing before Strapi modifies it.
Write a notification to say, hey, if you use "-" in filenames, it may break your ancient Oracle or whatever you need to say. I don't want my filenames to always have an "_", and I would like to be able to risk uploading a file overwrite if the "hash" is excluded from the suffix. that it very poorly named btw. if you stick with hash, it should be an actual hash of the file, not just a random string. The `string.ts` in the core/utils that is being used, has this ability from what i have seen. its just not being implemented.

### Steps to Reproduce

1. Upload a file with the name my-awesome-image.jpg
2. Strapi stores it as my_awesome_image_ag70834hi.jpg
3. No configuration options or service overrides prevent this.


### Expected Behavior

Filenames should remain unchanged during upload. 
If modifications are necessary, there should be a config option to allow users to choose.
I have tried plugins, middleware, and overriding the upload service behavior. it's buried too deep for me to be able to touch it and looks like it requires a fork to fix.

### Logs

```shell
i mean i upload the file with a name like "something-you-dont-like" and the hyphens get stripped from the name and shows in the corresponding HTTP requests and DB entries
```

### Code Snippets

https://github.com/strapi/strapi/blob/51cb30e957ba3c8ca7cdf8a528047f30fdce1c32/packages/core/utils/src/primitives/strings.ts#L8

### Media

_No response_

### Additional information

_No response_

### Confirmation Checklist

- [x] I have checked the existing [issues](https://github.com/strapi/strapi/issues) for duplicates.
- [x] I agree to follow this project's [Code of Conduct](https://github.com/strapi/strapi/blob/develop/CODE_OF_CONDUCT.md).