     e.preventDefault()
     @save
 
+  file_chosen: (e) =>
+    # https://developer.mozilla.org/en-US/docs/Using_files_from_web_applications
+    if typeof @model.set_file_field isnt 'function'
+      console.log 'Guts.CompositeModelForm : warning : file inputs can be handled using Backbone.FormDataTransport.Model associated with this CompositeModelForm'
+      return
+
+    for file_element in @$('form input[type=file]')
+      if file_element.files.length > 0
+        for file in file_element.files
+          console.log "CompositeModelForm : info : loading file '#{file.name}' from file field '#{file_element.name}'"
+
+          @model.set_file_field file_element.name, file
+          @model.save()
+    return
+
+
   keyup: (e) =>
     data = Backbone.Syphon.serialize(@)
     @model.set data

      'submit form': 'submitted'
      'keyup input': 'keyup'
      'keyup textarea': 'keyup'
    if @extra_events
      form_events = _.extend(form_events, _.result(@, 'extra_events'))
    form_events

        context[model_name + '_url'] = model.url
        context[model_name + '_cid'] = model.cid
    else
      if not @model
        throw 'CompositeModelView : error : model is not set'
      context =
        model: @model.toJSON()
        cid: @model.cid
        url: @model.url

    @_rendered = true
    template_result = render do @get_template, context
