:class:`~werkzeug.datastructures.MultiDict` object containing all uploaded files. Each key in :attr:`files` is the name from the ``<input type="file" name="">``. Each value in :attr:`files` is a Werkzeug :class:`~werkzeug.datastructures.FileStorage` object. It basi
(self)
| 476 | |
| 477 | @cached_property |
| 478 | def files(self) -> ImmutableMultiDict[str, FileStorage]: |
| 479 | """:class:`~werkzeug.datastructures.MultiDict` object containing |
| 480 | all uploaded files. Each key in :attr:`files` is the name from the |
| 481 | ``<input type="file" name="">``. Each value in :attr:`files` is a |
| 482 | Werkzeug :class:`~werkzeug.datastructures.FileStorage` object. |
| 483 | |
| 484 | It basically behaves like a standard file object you know from Python, |
| 485 | with the difference that it also has a |
| 486 | :meth:`~werkzeug.datastructures.FileStorage.save` function that can |
| 487 | store the file on the filesystem. |
| 488 | |
| 489 | Note that :attr:`files` will only contain data if the request method was |
| 490 | POST, PUT or PATCH and the ``<form>`` that posted to the request had |
| 491 | ``enctype="multipart/form-data"``. It will be empty otherwise. |
| 492 | |
| 493 | See the :class:`~werkzeug.datastructures.MultiDict` / |
| 494 | :class:`~werkzeug.datastructures.FileStorage` documentation for |
| 495 | more details about the used data structure. |
| 496 | """ |
| 497 | self._load_form_data() |
| 498 | return self.files |
| 499 | |
| 500 | @property |
| 501 | def script_root(self) -> str: |
nothing calls this directly
no test coverage detected