Рейтинг:0

Как я могу перезаписать существующий файл и сохранить то же имя файла при загрузке нового

флаг bm

У меня есть тип контента «Документ» и добавлено поле «Загрузить документ» с типом «Файл» Я хочу заменить файл и обновить узел. Я использую код ниже

функция custom_file_upload_form_alter(&$form, $form_state, $form_id) {
  если ($ form_id == "test_node_form") {
    $form['#submit'][] = 'custom_fileupload_submit';
  }
}

функция custom_fileupload_submit(&$form, &$form_state) {
 $file = file_save_upload('полевой_документ', массив(
    'file_validate_extensions' => array('pdf'), // Проверка расширений.
    'общедоступный://', ​​FILE_EXISTS_REPLACE
  ));
  если ($ файл) {
    // Переместить файл в файловую систему Drupal
    если ($file = file_move($file, 'public://', ​​FILE_EXISTS_REPLACE)) {
      // Сохраняем файл для использования в обработчике отправки.
      $form_state['хранилище']['файл'] = $файл;
    }
    еще {
      form_set_error('file', t('Не удалось записать загруженный файл в папку с файлами сайта.'));
    }
  }
  еще {
    form_set_error('файл', t('Файл не загружен.'));
  }
}

Здесь file_save_upload() не работает. У меня есть отладка переменной $file, но она ничего не печатает.

флаг cn
Посмотрите на свой вызов `file_save_upload` более внимательно. Скорее всего, вы не хотели включать пункт назначения и константу как часть массива проверки.
флаг bm
'field_document' - это имя поля файла, это правильно?
Рейтинг:1
флаг ru

Вы можете просто использовать Загрузить файл Заменить модуль для решения этого варианта использования вместо пользовательского кода:

Это небольшой служебный модуль, который автоматически останавливает Drupal от переименования новых файлов, загружаемых через файловое поле CCK. Когда существуют 2 файла с одинаковым именем, старые файлы будут переименованы.

флаг bm
Да, я пробовал этот модуль, он не работает с другими функциями, связанными с загрузкой файлов. Есть ли другой способ сделать это с помощью пользовательского модуля?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.