Index: modules/file/file.field.inc =================================================================== RCS file: /cvs/drupal/drupal/modules/file/file.field.inc,v retrieving revision 1.41 diff -u -p -r1.41 file.field.inc --- modules/file/file.field.inc 22 Nov 2010 04:42:09 -0000 1.41 +++ modules/file/file.field.inc 7 Dec 2010 16:19:20 -0000 @@ -441,7 +441,6 @@ function file_field_widget_settings_form * Implements hook_field_widget_form(). */ function file_field_widget_form(&$form, &$form_state, $field, $instance, $langcode, $items, $delta, $element) { - $defaults = array( 'fid' => 0, 'display' => !empty($field['settings']['display_default']), @@ -568,14 +567,17 @@ function file_field_widget_upload_valida * A field array. * @param $instance * A field instance array. + * @param $data + * An array of token objects to pass onto token_replace(). * @return * A file directory URI with tokens replaced. + * + * @see token_replace() */ -function file_field_widget_uri($field, $instance, $account = NULL) { +function file_field_widget_uri($field, $instance, $data = array()) { $destination = trim($instance['settings']['file_directory'], '/'); // Replace tokens. - $data = array('user' => isset($account) ? $account : $GLOBALS['user']); $destination = token_replace($destination, $data); return $field['settings']['uri_scheme'] . '://' . $destination; Index: modules/file/tests/file.test =================================================================== RCS file: /cvs/drupal/drupal/modules/file/tests/file.test,v retrieving revision 1.28 diff -u -p -r1.28 file.test --- modules/file/tests/file.test 13 Nov 2010 14:04:08 -0000 1.28 +++ modules/file/tests/file.test 7 Dec 2010 16:19:21 -0000 @@ -930,7 +930,7 @@ class FileFieldPathTestCase extends File // Check the path when used with tokens. // Change the path to contain multiple token directories. - $field = $this->updateFileField($field_name, $type_name, array('file_directory' => '[user:uid]/[user:name]')); + $field = $this->updateFileField($field_name, $type_name, array('file_directory' => '[current-user:uid]/[current-user:name]')); // Upload a new file into the token subdirectories. $nid = $this->uploadNodeFile($test_file, $field_name, $type_name); @@ -938,8 +938,7 @@ class FileFieldPathTestCase extends File // Check that the file was uploaded into the subdirectory. $node = node_load($nid, NULL, TRUE); $node_file = (object) $node->{$field_name}[LANGUAGE_NONE][0]; - $data = array('user' => $this->admin_user); - $subdirectory = token_replace('[user:uid]/[user:name]', $data); + $subdirectory = token_replace('[current-user:uid]/[current-user:name]'); $this->assertPathMatch('public://' . $subdirectory . '/' . $test_file->filename, $node_file->uri, t('The file %file was uploaded to the correct path with token replacements.', array('%file' => $node_file->uri))); }