Puncte:0

Utilizarea FileSystemInterface::EXISTS_REPLACE într-o formă pentru a înlocui fișierele dacă acestea există deja

drapel cn

Am un formular configurat în meniul de administrare care permite unei persoane să încarce un fișier, ca o imagine. Fișierul respectiv este apoi folosit în modulul personalizat în altă parte. Vreau să pot înlocui acel fișier dacă îl încarcă din nou. Cred că pot folosi FileSystemInterface::EXISTS_REPLACE în formular pentru a face acest lucru, dar nu găsesc documentație despre cum să fac exact. Există exemple de implementare a acestui lucru? Vă rog să-mi spuneți dacă doriți să vedeți formularul sau orice alt cod, dar nu cred că este necesar. Mulțumiri!

Editați, am văzut o documentație de anul trecut care spune că nu este posibil să înlocuiți fișierele încărcate cu altele cu același nume. Mă întreb dacă acest lucru este încă adevărat din aprilie 2022.

Iată unde este încărcată imaginea sub formă:

 $form['upload']['sound_dir'] = [
  '#type' => 'fișier_gestionat',
  '#upload_location' => 'public://',
  '#required' => FALSE,
  '#multiple' => FALSE,
  '#description' => t('Extensii permise: mp3 wav'),
  '#upload_validators' => [
    'file_validate_extensions' => array('mp3 wav'),
    'file_validate_size' => matrice (25600000)
  ],
  '#title' => t('Încărcați un fișier de sunet:')
  ];

Și trimiterea:

  funcția publică submitForm(matrice &$form, FormStateInterface $form_state) {
    $file_data = $form_state->getValue(['upload' => 'sound_dir']);
    if ($file_data != null) {
      $fișier = \Drupal\file\Entity\File::load( $file_data[0], );
      $file_name = $file->getFilename();
      $uri = $fișier->getFileUri();
      $url = \Drupal\Core\Url::fromUri(file_create_url($uri))->toString();
      $fișier->setPermanent();
      $fișier->salvare();

      $this->configFactory->getEditable(static::SETTINGS)
      ->set('pathToSound', $url)
      ->salvare();
      parent::submitForm($form, $form_state);
    }
  }
No Sssweat avatar
drapel ua
Iată un exemplu de patch D9 https://www.drupal.org/files/issues/2020-02-21/deprecated_code-3115151-3.patch

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.