it-swarm.com.de

Wie lade ich eine Datei von einem benutzerdefinierten Modul hoch?

Ich versuche, ein Basismodul für Drupal 8) zu erstellen, wobei ich ein Formular mit einigen Textfeldern und mehreren Elementen zum Hochladen von Dateien hinzugefügt habe. Jetzt speichere ich auf "submitForm" Textfeldwerte in der Datenbank, aber Ich bin nicht sicher, wie ich Bildfelder speichern kann. Ich werde nur den Dateinamen in der Datenbank speichern.

Wird es dieselbe Funktion verwenden wie in Drupal 7?

4
parth.k

Wenn Sie eine Datei hochladen, wird die Datei vorübergehend in der Tabelle file_managed in der Datenbank gespeichert. Außerdem müssen Sie den permanenten Status 1 der Datei festlegen, um sie dauerhaft zu speichern. Andernfalls wird sie nach einiger Zeit von cron aus der Tabelle gelöscht Zeit.
Dieser Beispielcode zum Laden und Speichern eines Bildes in einer Datenbank kann Ihnen das Verständnis erleichtern.

/* Fetch the array of the image file stored temporarily in database */
$image = $form_state->getValue ('image');

/* Load the object of the image file by it's fid */
$file = File::load ($image[0]);

/* Set the status flag permanent of the image file object */
$file->setPermanent();

/* Save the file in database ( "managed_file" table) */
$file->save();

wenn Sie eine Datei aus dem Feldtyp 'verwaltete_Datei' auswählen, drupal einen Eintrag in die Tabelle 'file_managed' vornehmen, müssen Sie nur festlegen das permanente Flag wie oben, um zu entscheiden, ob Sie es dauerhaft speichern müssen oder nicht.

8