Drupal: загрузка Файла требуется?

По некоторым причинам моя форма повреждается, когда я пытаюсь сделать загрузку файла требуемой. Вот код для него:

$form_id = "upload_form";

$form[$form_id] = array (
    '#type' => 'fieldset',
    '#description' => t('This is a utility to import nodes from a Comma Separated Value file. To begin, pick a node type, and upload a CSV.'),
);

$form[$form_id]['type'] = array(
    '#title' => t('Enter node type'),
    '#type' => 'textfield',
//      '#autocomplete_path' => '', TODO: autocomplete for node types
    '#required' => TRUE,
    '#description' => t('This node type should already exist. If it doesn\'t, create it first.'),
);

$form[$form_id]['upload'] = array(
    '#type' => 'file',
    '#title' => t('Upload CSV file'),
//      '#size' => 40,
    '#description' => t('This will not work for a non-CSV file.'),
//      '#required' => TRUE, TODO: breaks it. why?
);

$form[$form_id]['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Submit'),
);

$form['#attributes'] = array('enctype' => 'multipart/form-data');

На сайте поддержки Drupal кто-то говорит, что это невозможно к требуемым загрузкам make-файла. Действительно ли это верно?

5
задан Nick Heiner 3 January 2010 в 20:13
поделиться

2 ответа

Это мой обходной путь, чтобы сделать требуемое файловое поле:

<?    
    // A piece of form that defines the file field
    $form['attachment'] = array(
        '#type' => 'file',
        '#title' => t('Title'),
        //'#required' => TRUE,  // check this manually
    );

    // Form validation hook
    function yourformname_validate($form, &$form_state) {
        // Validate file
        $validators = array(
            'file_validate_extensions' => array('doc txt pdf'), // does not work for user 1
            'file_validate_size' => array(1000000, 0),
        );
        $file = file_save_upload('attachment', $validators, file_directory_path());
        if ($file) {
             $form_state['values']['attachment'] = $file; // drupal file object
        }
        else{
             form_set_error('attachment', "File is required");
        }
    }
?>
3
ответ дан 15 December 2019 в 06:27
поделиться

Я не эксперт по Drupal, но вы могли бы проверить, существует ли переменная $_FILES, нет?

.
0
ответ дан 15 December 2019 в 06:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: