code: def from_file(self, file, store=current_store,
                    extra_args=None, extra_kwargs=None):
          
  
          if isinstance(file, cgi.FieldStorage):
              file = file.file
  
          data = io.BytesIO()
          shutil.copyfileobj(file, data)
          data.seek(0)
          return self.from_raw_file(data, store, original=True,
                                    extra_args=extra_args,
                                    extra_kwargs=extra_kwargs)
docs: Stores the ``file`` for the image into the ``store``.
  
          :param file: the readable file of the image
          :type file: file-like object, :class:`file`
          :param store: the storage to store the file.
                        :data:`~sqlalchemy_imageattach.context.current_store`
                        by default
          :type store: :class:`~sqlalchemy_imageattach.store.Store`
          :param extra_args: additional arguments to pass to the model's
                             constructor.
          :type extra_args: :class:`collections.abc.Sequence`
          :param extra_kwargs: additional keyword arguments to pass to the
                               model's constructor.
          :type extra_kwargs: :class:`typing.Mapping`\ [:class:`str`,
                                                        :class:`object`]
          :returns: the created image instance
          :rtype: :class:`Image`
  
          .. versionadded:: 1.0.0
             The ``extra_args`` and ``extra_kwargs`` options.