I am creating a module to upload video to an in house media converter – as part of the module installation I create a new content type called “user video” which has a file field as part of it.
I need to set this file field so it saves to the private files directory, however I am unable to do so. I can create the content type and add the file field – but never manage to get the upload destination to be private.
Sometimes I am able to change this via the admin interface, but sometimes this option is greyed out.
I have included the code below and would be grateful for any assistance.
//Create the file upload for the video to be converted $field_name = 'uploaded_video'; // Create the field definition array. $field = array( 'field_name' => $field_name, 'type' => 'file', ); $field = field_create_field( $field ); // Create the field instance definition array. $instance = array( 'field_name' => $field[ 'field_name' ], 'entity_type' => 'node', 'bundle' => 'user_video', 'description' => 'A field for uploading video and audio content.', 'label' => 'Video to upload', 'settings' => array( 'file_extensions' => 'mp4 avi wmv qti mov', 'uri_scheme' => 'private', ), 'widget' => array( 'type' => 'file', ), ); // Create an instance of the field and bind it to the bundle. field_create_instance($instance)