Creates a new file field.
$name: The name of the new field (all lowercase), exclude the "field_" prefix.
$type_name: The node type that this field will be added to.
$field_settings: A list of field settings that will be added to the defaults.
$instance_settings: A list of instance settings that will be added to the instance defaults.
$widget_settings: A list of widget settings that will be added to the widget defaults.
function createFileField($name, $type_name, $field_settings = array(), $instance_settings = array(), $widget_settings = array()) {
$field = array(
'field_name' => $name,
'type' => 'file',
'settings' => array(),
'cardinality' => !empty($field_settings['cardinality']) ? $field_settings['cardinality'] : 1,
);
$field['settings'] = array_merge($field['settings'], $field_settings);
field_create_field($field);
$this
->attachFileField($name, 'node', $type_name, $instance_settings, $widget_settings);
}