class_docstr: A binary file field, it should only be used in an input schema.
  
  Examples:
  
  ```python
  import os
  
  from werkzeug.utils import secure_filename
  from apiflask.fields import File
  
  
  class Image(Schema):
      image = File()
  
  
  @app.post('/images')
  @app.input(Image, location='files')
  def upload_image(files_data):
      f = files_data['image']
      # use `secure_filename` to clean the filename, notice it will only keep ascii characters
      filename = secure_filename(f.filename)
      f.save(os.path.join(the_path_to_uploads, filename))
  
      return {'message': f'file {filename} saved.'}
  ```
  The file object is an instance of `werkzeug.datastructures.FileStorage`, see more details in the
  [docs](https://werkzeug.palletsprojects.com/datastructures/#werkzeug.datastructures.FileStorage).  # noqa: B950, E501
  
  Use `form_and_files` location if you want to put both files
  and other normal fields in one schema.
  
  ```python
  import os
  
  from werkzeug.utils import secure_filename
  from apiflask.fields import String, File
  
  
  class ProfileIn(Schema):
      name = String()
      avatar = File()
  
  @app.post('/profiles')
  @app.input(ProfileIn, location='form_and_files')
  def create_profile(form_and_files_data):
      avatar_file = form_and_files_data['avatar']
      name = form_and_files_data['name']
  
      # use `secure_filename` to clean the filename, notice it will only keep ascii characters
      avatar_filename = secure_filename(avatar_file.filename)
      avatar_file.save(os.path.join(the_path_to_uploads, avatar_filename))
  
      profile = Profile(name=name, avatar_filename=avatar_filename)
      # ...
      return {'message': 'profile created.'}
  ```
  
  In the current implementation, `files` location data will also include
  the form data (equals to `form_and_files`).
  
  *Version Added: 1.0*
  
  This field accepts the same keyword arguments that `Field` receives.
code: def __init__(self, *args, **kwargs):
      super().__init__(*args, **kwargs)
      self.metadata["type"] = "string"
      self.metadata["format"] = "binary"
  
imports: import typing
  import warnings
  from marshmallow.fields import AwareDateTime
  from marshmallow.fields import Boolean
  from marshmallow.fields import Constant
  from marshmallow.fields import Date
  from marshmallow.fields import DateTime
  from marshmallow.fields import Decimal
  from marshmallow.fields import Dict
  from marshmallow.fields import Email
  from marshmallow.fields import Field
  from marshmallow.fields import Float
  from marshmallow.fields import Function
  from marshmallow.fields import Integer
  from marshmallow.fields import IP
  from marshmallow.fields import IPv4
  from marshmallow.fields import IPv6
  from marshmallow.fields import List
  from marshmallow.fields import Mapping
  from marshmallow.fields import Method
  from marshmallow.fields import NaiveDateTime
  from marshmallow.fields import Nested
  from marshmallow.fields import Number
  from marshmallow.fields import Pluck
  from marshmallow.fields import Raw
  from marshmallow.fields import String
  from marshmallow.fields import Time
  from marshmallow.fields import TimeDelta
  from marshmallow.fields import Tuple
  from marshmallow.fields import URL
  from marshmallow.fields import UUID
  from marshmallow.fields import Enum
  from webargs.fields import DelimitedList
  from webargs.fields import DelimitedTuple
label_desc: Use image node_id 1 to create a new File object from inherited base classes: Field with example: obj = File()