def file_field(name, identifier={:index => 0}, &block)
      standard_methods(name, identifier, 'file_field_for', &block)
      define_method("#{name}=") do |value|
        return platform.file_field_value_set(identifier.clone, value) unless block_given?
        self.send("#{name}_element").value = value
      end
    end
def file_field(name, identifier={:index => 0}, &block)
      standard_methods(name, identifier, 'file_field_for', &block)
      define_method("#{name}=") do |value|
        return platform.file_field_value_set(identifier.clone, value) unless block_given?
        self.send("#{name}_element").value = value
      end
    end
adds three methods - one to set the file for a file field, another to retrieve
 the file field element, and another to check it's existence.

 @example
   file_field(:the_file, :id => 'file_to_upload')
   # will generate 'the_file=', 'the_file_element', and 'the_file?' methods

 @param [Symbol] the name used for the generated methods
 @param [Hash] identifier how we find a file_field.
 @param optional block to be invoked when element method is called