Quiero cargar un archivo y tengo que usar el tipo de elemento de formulario como 'archivo'. En la función de envío, no puedo obtener ningún dato adecuado relacionado con el archivo que estoy cargando. Entonces, ¿alguien puede ayudarme a resolver esto? Por favor encuentre el siguiente código:
public function buildForm(array $form, FormStateInterface $form_state) {
$form['test_CERTIFICATE'] = [
'#type' => 'file',
'#title' => $this->t('Certificate'),
'#description' => $this->t('Your Certificate (.pem file)').': '.\Drupal::state()->get('test_CERTIFICATE_NAME'),
];
return parent::buildForm($form, $form_state);
}
Función de envío:
public function submitForm(array &$form, FormStateInterface $form_state) {
parent::submitForm($form, $form_state);
$validators = array('file_validate_extensions' => array('pem'));
$files = file_save_upload('test_CERTIFICATE', $validators, 'public://certfiles', FILE_EXISTS_REPLACE);
$file = File::load($files[0]);
if($file) {
kint($files); exit;
//here control is not coming
$file->setPermanent();
$file->save();
}
}
Consulte el repositorio de github para obtener un formulario personalizado con la carga de archivos. github.com/nitin-kawane/…
—
Nitin