Seite 1 von 1

$_FILES[] im Inputbereich

Verfasst: Di 15. Mai 2007, 16:05
von tinof
Hallo,

ich möchte dem Benutzer im Rahmen der Artikelkonfiguration die Möglichkeit bieten, eine (lokale) Datei hochzuladen und diese dann vom Server über ein Script in benutzerspezifische Tabellen einzulesen.
Leider liefert mit der Zugriff auf $FILES[] im Input - Code meines Moduls immer ein leeres Array - währen der gleiche Code als 'stand - alone' - php funktioniert.
Geht sowas generell nicht oder was mache ich hier falsch ?

mein Modul - Input:

Code: Alles auswählen

<form name="upform" method="post" style="padding:0;margin:0;" enctype="multipart/form-data">
   <table border="0" cellspacing="10" cellpadding="0">
  <tr>
     <td><strong>H&auml;ndler Datei (aus WWS) hochladen</strong></td>
  </tr>
  <tr>
     <td>aus Datei:
     <input type="file" name="upfile"></td>
  </tr> 
  <tr>
     <td><input type="submit" name="uploadfile" value="Datei hochladen" class="button"></td>
   </tr>      
</form>

<?php

$path=$cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'];


// Behandlung Upload
if (isset($_POST['uploadfile'])) {
  // hier komme ich noch korrekt 'raus

  // DAS fuktioniert nicht :
  $filename = $path . $_FILES['upfile']['name'];
  $filetemp = $_FILES['upfile']['tmp_name'];
  move_uploaded_file($filetemp,$filename);

  // debug :
  echo "von " . $filetemp. " nach " . $filename;
};




?>
<?php
Während die $_POST - Variablen wie erwartet funktionieren, ist $_FILES immer leer.

Vielleicht hat jemand eine Idee ?

Vielen Dank !

Verfasst: Di 15. Mai 2007, 16:54
von emergence
was liefert

Code: Alles auswählen

<?php

echo "<pre>";
print_r($_FILES);
echo "</pre>";

?>
?

Verfasst: Di 15. Mai 2007, 17:46
von tinof

Code: Alles auswählen

Array
(
)
Ich habe auch schon $_FILES[0][..] probiert sowie

count($_FILES)

das Array ist leer.

So als ob Contenido es 'schluckt'. Komisch nur, das die anderen Formularelemente funkionieren (in der Live - Version sind noch ein paar Buttons und Felder mehr).

Verfasst: Mi 16. Mai 2007, 05:26
von emergence
bin nicht sicher ob das im input bereich überhaupt geht...

alles befindet sich dort eigentlich innerhalb einer form -> und dort ist kein enctype angegeben...

Verfasst: Mi 16. Mai 2007, 06:23
von tinof
Hallo,

ja, wahrscheinlich hast du recht.

Ich habe eben mal den Modulcode 1:1 in den Outputbereich kopiert.

Hier funktioniert es tadellos.

Es wird also doch eine Eigenheit des Input - Bereiches sein. Ich habe mich nur 'verbissen', weil $_POST noch funktioniert.

Ok, muss ich eine geschützte Frontendseite anlegen.

Danke !

Tino

Verfasst: Mo 21. Mai 2007, 09:12
von emergence
ich mach daraus einen bug...

templates/standard/template.tplcfg_edit_form.html

bei

Code: Alles auswählen

<form name="tplcfgform" action="{FORMACTION}" method="post">
eine ergänzung von

Code: Alles auswählen

 enctype="multipart/form-data"
sollte das problem beheben...

Verfasst: Mo 28. Mai 2007, 19:22
von HerrB
Checkin