Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Modul-Entwicklung ›

[erledigt]Probleme File Upload, Formularwert leer

Eingetragen von Naerk (13)
am 18.10.2009 - 18:08 Uhr in
  • Modul-Entwicklung
  • Drupal 6.x

Hallo,

entwickle derzeitig ein eigenes Drupal Modul, wo man mittels eines Formulares ein File hochladen kann. Der Code hierfür ist grundsätzlich klar. Mein Problem besteht nun darin, dass der Wert des Formular Feldes für das File nach dem abschicken leer ist. Verstehe einfach nicht wo mein Fehler liegt.
Nach der Auswahl eines Files und dem Abschicken des Forms ist die Ausgabe von $form_state:
Array
(
[storage] =>
[submitted] => 1
[values] => Array
(
[test] => dfgdfg
[upload] =>
[op] => Datei hochladen
[submit] => Datei hochladen
...

Nachfolgend der Code:

function test_file() {
  return drupal_get_form('test_form');
}

function test_form_submit($form, &$form_state) {
  echo "<pre>";print_R($form_state);echo "</pre>";
}

function test_form_validate($form, &$form_state) {
  echo "<pre>";print_R($form_state);echo "</pre>";
}

function test_form() {
  $form['#attributes']['enctype'] = 'multipart/form-data';
 
  $form['test'] = array(
    '#type' => 'textfield',
    '#title' => t('test'),
    '#required' => TRUE
  ); 
   
  $form['upload'] = array(
    '#type' => 'file',
    '#title' => t('Datei auswaehlen'),
    '#required' => TRUE
  );
 
  $form['submit'] = array('#type' => 'submit', '#value' => t('Datei hochladen'));
  return $form;
}

‹ mod_rewrite hilfe Mehrere Seiten im Userprofil ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich frage mich gerade, wieso

Eingetragen von SteffenR@drupal.org (2262)
am 19.10.2009 - 08:40 Uhr

Ich frage mich gerade, wieso du ein eigenes Upload Modul schreiben möchtest. Dies ist schon im Kern von Drupal enthalten und müsste nur noch aktiviert werden.. Dies kannst du auf der Modulübersichtsseite mit 2 Klicks aktivieren ;)..

Pfad zur Modulseite:
admin/build/modules

7_de_btn.gif

  • Anmelden oder Registrieren um Kommentare zu schreiben

upload

Eingetragen von stBorchert (6003)
am 19.10.2009 - 08:38 Uhr

Hallo.
Du möchtest das (Kern-)Modul upload nachbauen? Hm.
Notfalls kannst Du in gerade erwähntem Modul nachschauen, wie das dort gelöst ist.

 Stefan

--
sei nett zu Deinem Themer

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo, danke für die

Eingetragen von Naerk (13)
am 19.10.2009 - 08:47 Uhr

Hallo,

danke für die Hinweise. Habe auch dort schon in dem Modul geschaut. Ich baue ein eigenes Upload Modul, da dies aufgrund der Projektanforderungen erforderlich ist.

Aber nochmal zu meinem Problem. Mein Code generiert ein Formular, was auch den richtigen "enctype" hat. Fülle ich nun die beiden Formularfelder aus, so kommt der Wert des Textfeldes an, der des Upload Feldes ist aber leer. Das verstehe ich nicht... Ist ein Fehler in dem Code?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: Du möchtest das

Eingetragen von stebeg (463)
am 19.10.2009 - 09:37 Uhr
Zitat:

Du möchtest das (Kern-)Modul upload nachbauen? Hm.

Wenn ich mich recht ertsinne ist das Upload-Modul dafür vorgesehen Dateien an Nodes anzuhängen. Man müsste also für jeden Upload ein Node erstellen um etwas hochzuladen. Ich wage zu behaupten, dass es Situationen gibt, in denen man etwas hochladen möchte, ohne einen Node zu erstellen. aber egal, back to Topic ...

Das Formular sieht eigentlich richtig aus. Ich würd mal die Submit-Funktion vervollständigen und gucken, ob die Datei hochgeladen wird, also ungefähr so:

<?php
if($file = file_save_upload('upload', $validators = array(),
   
$upload_path, $replace = FILE_EXISTS_RENAME))
  {
   
file_set_status($file, FILE_STATUS_PERMANENT);
   
drupal_set_message("Upload erfolgreich");
  } else
    {
     
drupal_set_message("Fehler beim Upload", 'error');
    }
?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich möchte eine Datei gar

Eingetragen von Naerk (13)
am 19.10.2009 - 09:52 Uhr

Ich möchte eine Datei gar nicht an ein Node anhängen. Diese soll einfach hochgeladen und der Pfad in einer seperaten Datenbank Tabelle abgelegt werden. Deswegen verwende ich auch nicht das Upload Modul.

Das Vervollständigen des Formulares löst mein Problem leider nicht. Der Vorgang geht nicht weiter als test_form_validate(), da (siehe Array) das Feld "upload" leer ist und somit die Validierung dieses required Fields fehlschlägt.

  • Anmelden oder Registrieren um Kommentare zu schreiben

hmmm das einzige was ich in

Eingetragen von stebeg (463)
am 19.10.2009 - 10:15 Uhr

hmmm das einzige was ich in meinem Upload-Modul anders hab als du ist, dass ich statt

<?php
$form
['#attributes']['enctype'] = 'multipart/form-data';
?>

einen Array übergebe, nämlich so

<?php
$form
['#attributes'] = array('enctype' => "multipart/form-data");
?>

aber daran kanns ja eigentlich nicht liegen. Is ja beides prinzipiell das selbe.

  • Anmelden oder Registrieren um Kommentare zu schreiben

$_FILES

Eingetragen von stBorchert (6003)
am 19.10.2009 - 10:35 Uhr

Hochgeladene Dateien werden nicht in $form oder $form_state gespeichert, sondern in der globalen Variable $_FILES.
Siehe dazu auch die Umsetzung in den Funktionen upload_node_form_submit und file_save_upload.

hth,

 Stefan

--
sei nett zu Deinem Themer

  • Anmelden oder Registrieren um Kommentare zu schreiben

klingt logisch. Danke für

Eingetragen von Naerk (13)
am 19.10.2009 - 10:44 Uhr

klingt logisch. Danke für die Hilfe, jetzt funktioniert es.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • gepatchte PHP Version 7.4 für Windows
  • Canvas Palette: Eine fertige Komponentenbibliothek für Drupal Canvas
  • Hilfe zu Updates oder Composer
  • Vergleich Drupal und Contao
  • [geloest] Blocks in Bootstrap nebeneinander darstellen und nicht untereinander
  • DrupalCamp Frankfurt 27-28 November 2026
  • Bitte mein Bentzerkonto löschen
  • Beim Aufruf einiger Inhalte erhalte ich folgende Fehlermeldung
  • Neuinstallation: vermutlich ein rewrite-Problem
  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
Weiter

Neue Kommentare

  • Muss ja nicht genau php 8.3 sein
    vor 2 Tagen 22 Stunden
  • Guten morgen und Danke
    vor 3 Tagen 4 Stunden
  • Evtl. versuchen auf PHP 8 zu wechseln
    vor 3 Tagen 10 Stunden
  • Danke Schmittrich. Die Frage
    vor 5 Tagen 2 Stunden
  • Keine Antwort auf die Frage nach dem Woher
    vor 5 Tagen 5 Stunden
  • Danke ich werde mir die
    vor 6 Wochen 2 Tagen
  • Vielen Dank für Ihren
    vor 6 Wochen 5 Tagen
  • Composer ist sehr ratsam
    vor 7 Wochen 15 Stunden
  • Vielen Dank für den
    vor 7 Wochen 3 Tagen
  • Die alten CMS Vergleiche von contentmanager.de
    vor 7 Wochen 3 Tagen

Statistik

Beiträge im Forum: 250323
Registrierte User: 20571

Neue User:

  • alxshell
  • AnthonyhoF
  • Philiphelve

» Alle User anzeigen

User nach Punkten sortiert:
wla9466
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 1 Benutzer und 8 Gäste online.

Benutzer online

  • wla

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association