dev Demoprojekt

Dies ist ein Demoprojekt. Es dient Ihnen als Grundlage für den Aufbau individueller Seiten mit Weblication® CMS.

Die Seitenstruktur, das Layout und die von den Redakteuren nutzbaren Seitenelemente können Sie frei definieren.

Formular mit Dateianlagen nutzen

02. Apr 2014, 09:16 Uhr

Die BASE Projektbasis und das Formular-Weblic® liefern Ihnen bereits standardmässig das Kontaktformular vorbereitet für einen Versand von Dateianlagen aus.

Um ein Formular um die Möglichkeit zum Hochladen von Dokumenten zu erweitern, fügen Sie über den Struktureditor an der gewünschten Stelle das Element "Datei-Upload" hinzu:

Formular: Element Datei-Uploadzoom
Formular: Element Datei-Upload

In den Einstellungen des Datei-Upload Elementes können Sie die erforderlichen Einstellungen für das Upload-Feld vornehmen (Feldname, Maximale Dateigrösse, Erlaubte Dateiendungen, etc.):

Formular: Element Datei-Upload (Einstellungen)zoom
Formular: Element Datei-Upload (Einstellungen)
Formular: Element Datei-Upload (Einstellungen) mit Versandmöglichkeitzoom
Formular: Element Datei-Upload (Einstellungen) mit Versandmöglichkeit

Hinweis:
Ab CMS-Version 008.002.136.000 und dem aktuellsten Formular-Weblic® besteht direkt im Upload-Formularelement die Möglichkeit, die hochgeladene Datei als Anhang mitzusenden (siehe Screen oben). Das Formular muß dazu neu in die Seite eingefügt werden, damit die erweiterten Formulareinstellungen zu $attach[] entsprechend gesetzt sind.

 

Bei älteren Formularen bzw. CMS-Versionen (betreffend oberer linker Screen) gelten nachfolgende Ausführungen:

Über die erweiterten Formulareinstellungen definieren Sie in der Box "Nach dem Absenden auszuführendes Script", was mit der bzw. den hochgeladenen Datei/en geschehen soll. Hierzu steht Ihnen bereits ein vordefinierter PHP-Code zur Verfügung:

Erweiterte Formulareinstellungen - Nach dem Absenden auszuführendes Scriptzoom
Erweiterte Formulareinstellungen - Nach dem Absenden auszuführendes Script

Standardmässig ist der Teil des PHP-Codes für den Dateiupload / Attachments auskommentiert. Es reicht, die Zeile

   $attach[] = array('file' => $file['pathDestUploaded'], 'filename' => $file['nameUploaded']);

einzukommentieren, damit die über das Datei-Upload Feld hochgeladene/n Datei/en der E-Mail beim Versand angehängt werden.

Beispiel: Auszug aus 'serverEventOnSubmit' eines Formulares mit auskommentiertem Datei-Upload

...
  
$attach null;

  
//Falls Dateien hochgeladen wurden, können diese hier weiterverarbeitet werden
  
if($this->hasElementsFile){
    foreach(
$this->files as $file){
      
//print 'Die hochgeladene Datei '.$file['nameUploaded'].' liegt nun hier ab: '.$file['pathDestUploaded'].'<br />';

      //Falls die Dateien an den Empfänger per E-Mail gesendet werden sollen
      //$attach[] = array('file' => $file['pathDestUploaded'], 'filename' => $file['nameUploaded']);
    
}
  }

  
wMailer::sendMailStr($this->getVar("mailStr"), $mailDatanull$attach);

...

In diesem Bereich können Sie definieren, was mit den hochgeladenen Dateien konkret geschehen soll.

Zum Beispiel können Sie diese Dateien auch in der Verzeichnisstruktur Ihres Projektes ablegen, was nachfolgendes Beispiel aufführt:

Beispiel 2: Auszug aus 'serverEventOnSubmit' eines Formulares mit Ablage im Verzeichnis

...
  
$attach null;

  
//Falls Dateien hochgeladen wurden, können diese hier weiterverarbeitet werden
  
if($this->hasElementsFile){
    foreach(
$this->files as $file){
      
//print 'Die hochgeladene Datei '.$file['nameUploaded'].' liegt nun hier ab: '.$file['pathDestUploaded'].'<br />';
      
      
$attachementFilename date('Ymd'time()).'-'.date('Hi'time()).'_'.$file['nameUploaded'];
      
$pathDestAttachement '/baseAssets/img/uploads/'.$attachementFilename;
      
wReadWrite::writeFile($pathDestAttachementwReadWrite::readFile($file['pathDestUploaded']));
      
//print 'Die hochgeladene Datei '.$file['nameUploaded'].' liegt außerdem hier ab: '.$pathDestAttachement.'<br />';exit;

      //Falls die Dateien an den Empfänger per E-Mail gesendet werden sollen
      
$attach[] = array('file' => $file['pathDestUploaded'], 'filename' => $attachementFilename);
      
//print "<pre>";var_dump($attach);print "</pre>";
    
}
  }

  
wMailer::sendMailStr($this->getVar("mailStr"), $mailDatanull$attach);
...

Die Datei/en legen Sie auf diese Weise in einem bestehenden Verzeichnis im Assetsprojekt ab (z.B. für ein Bewerbungsformular, Supportformular, o.ä. Wie Sie die Dateien nach dem Hochladen benennen/umbenennen, entscheiden Sie über den Skriptcode in diesem PHP-Code.

Ein Formular sieht für den Seitenbesucher z.B. wie folgt aus:

Formular mit Dateianlagen / Attachementszoom
Formular mit Dateianlagen / Attachements

Ähnliche Seiten