def save(self, filehandle, destination=None, metadata=None,
             validate=True, catch_all_errors=False, *args, **kwargs):
        """Saves the filehandle to the provided destination or the attached
        default destination. Allows passing arbitrary positional and keyword
        arguments to the saving mechanism

        :param filehandle: werkzeug.FileStorage instance
        :param dest: String path, callable or writable destination to pass the
            filehandle off to. Transfer handles transforming a string or
            writable object into a callable automatically.
        :param metadata: Optional mapping of metadata to pass to validators,
            preprocessors, and postprocessors.
        :param validate boolean: Toggle validation, defaults to True
        :param catch_all_errors boolean: Toggles if validation should collect
            all UploadErrors and raise a collected error message or bail out on
            the first one.
        """
        destination = destination or self._destination
        if destination is None:
            raise RuntimeError("Destination for filehandle must be provided.")

        elif destination is not self._destination:
            destination = _make_destination_callable(destination)

        if metadata is None:
            metadata = {}

        if validate:
            self._validate(filehandle, metadata)

        filehandle = self._preprocess(filehandle, metadata)
        destination(filehandle, metadata)
        filehandle = self._postprocess(filehandle, metadata)
        return filehandle
Saves the filehandle to the provided destination or the attached
        default destination. Allows passing arbitrary positional and keyword
        arguments to the saving mechanism

        :param filehandle: werkzeug.FileStorage instance
        :param dest: String path, callable or writable destination to pass the
            filehandle off to. Transfer handles transforming a string or
            writable object into a callable automatically.
        :param metadata: Optional mapping of metadata to pass to validators,
            preprocessors, and postprocessors.
        :param validate boolean: Toggle validation, defaults to True
        :param catch_all_errors boolean: Toggles if validation should collect
            all UploadErrors and raise a collected error message or bail out on
            the first one.