Contao-Camp 2024
Ergebnis 1 bis 4 von 4

Thema: Haste Form File Upload

  1. #1
    Contao-Nutzer Avatar von webfuzzy
    Registriert seit
    27.10.2009.
    Ort
    München
    Beiträge
    29

    Standard Haste Form File Upload

    Ich möchte über ein Haste-Formular im Frontend einen File Upload bereitstellen. Während mit dem Contao Formulargenerator ein Upload Button einfach zu konfigurieren ist, ist es mir mir Haste bisher weder mit addFormField noch mit addFieldsFromDca gelungen. Der Formulargenerator sorgt ja dafür, dass die gewählte Datei dann in ein vorgegebenes Verzeichnis kommt. Kann Haste das auch irgendwie und wie muss dann das Upload Field für das Formular definiert werden?
    Gruß, webfuzzy

    Eine Stunde Code lesen kann einem eine Minute Lesen in der Dokumentation ersparen.
    Diomidis Spinellis: "Code Reading"

  2. #2
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.939

    Standard

    Sollte in etwa so gehen (ich habe das aus einem eigenen Modul kopiert):

    PHP-Code:
    $objForm = new \Haste\Form\Form('fileupload_'.$this->id'POST', function() {
            return \
    Input::post('FORM_SUBMIT') == 'fileupload_' $this->id;
          });


    $objForm->addFormField('file', array(
                                         
    'label'         => 'Datei',
                                         
    'inputType'     => 'upload',
                                         
    'eval'          => array(
                                                                  
    /* // aus core/forms/FormFileUpload.php
                                                                   * @property boolean $mandatory
                                                                   * @property integer $maxlength
                                                                   * @property integer $fSize
                                                                   * @property string  $extensions
                                                                   * @property string  $uploadFolder
                                                                   * @property boolean $doNotOverwrite
                                                                   */
                                                                  
    'mandatory'        => true,
                                                                  
    'maxlength'        => \Config::get('maxFileSize'),
                                                                  
    'fSize'                => \Config::get('maxFileSize'),
                                                                  
    //'extensions'     => \Config::get('uploadTypes'), // aus den systemweiten Einstellungen
                                                                  
    'extensions'        => $this->projectModel->extensions// aus Projektkonfiguration
                                                                  
    'uploadFolder'     => $objUploadDirectory->uuid,
                                                                  
    'doNotOverwrite' => '1'// Datei nicht überschreiben (Versionsnummer anhängen)
                                                                  
    'storeFile'           => '1'// Datei speichern
                                                                  
    )
                                             )); 
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  3. #3
    Contao-Nutzer Avatar von webfuzzy
    Registriert seit
    27.10.2009.
    Ort
    München
    Beiträge
    29

    Standard

    Ja, ja, ja - so geht's mit den entsprechenden Anpassungen für mein Formular.
    Vielen Dank!
    Gruß, webfuzzy

    Eine Stunde Code lesen kann einem eine Minute Lesen in der Dokumentation ersparen.
    Diomidis Spinellis: "Code Reading"

  4. #4
    Contao-Nutzer
    Registriert seit
    04.07.2013.
    Beiträge
    24

    Standard

    Zitat Zitat von fiedsch Beitrag anzeigen
    Sollte in etwa so gehen (ich habe das aus einem eigenen Modul kopiert):

    PHP-Code:
    $objForm = new \Haste\Form\Form('fileupload_'.$this->id'POST', function() {
            return \
    Input::post('FORM_SUBMIT') == 'fileupload_' $this->id;
          });


    $objForm->addFormField('file', array(
                                         
    'label'         => 'Datei',
                                         
    'inputType'     => 'upload',
                                         
    'eval'          => array(
                                                                  
    /* // aus core/forms/FormFileUpload.php
                                                                   * @property boolean $mandatory
                                                                   * @property integer $maxlength
                                                                   * @property integer $fSize
                                                                   * @property string  $extensions
                                                                   * @property string  $uploadFolder
                                                                   * @property boolean $doNotOverwrite
                                                                   */
                                                                  
    'mandatory'        => true,
                                                                  
    'maxlength'        => \Config::get('maxFileSize'),
                                                                  
    'fSize'                => \Config::get('maxFileSize'),
                                                                  
    //'extensions'     => \Config::get('uploadTypes'), // aus den systemweiten Einstellungen
                                                                  
    'extensions'        => $this->projectModel->extensions// aus Projektkonfiguration
                                                                  
    'uploadFolder'     => $objUploadDirectory->uuid,
                                                                  
    'doNotOverwrite' => '1'// Datei nicht überschreiben (Versionsnummer anhängen)
                                                                  
    'storeFile'           => '1'// Datei speichern
                                                                  
    )
                                             )); 
    Der Code funktioniert für mich in sofern, als das ein Uploadfeld angezeigt wird und die Datei laut Browser auch hochlädt. Leider kommt bei mir auf der Server kein Upload an und in der Datenbank nur "0x00000000". Ich hätte gerne die Datei auf dem Server "uploadFolder" und anschließend einen Link/Verknüpfung zu der Datei in der Datenbank gespeichert. Ich bin kein sehr erfahrener Programmierer und würde mich deshalb ernsthaft über jede Hilfe in dieser Angelegenheit freuen. Alleine komme ich einfach nicht auf die Lösung

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •