PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (http://www.php-resource.de/forum/)
-   PHP Developer Forum (http://www.php-resource.de/forum/php-developer-forum/)
-   -   $_FILES ist leer... (http://www.php-resource.de/forum/php-developer-forum/55565-_files-ist-leer.html)

saudade 11-06-2005 05:36

$_FILES ist leer...
 
...obwohl in $_POST['bilddatei'] der Dateipfad eingetragen ist.
Kann mir jemand von Euch sagen, was der Grund sein könnte?

Version: 4.3.6
WIN XP

saudade, PHP-Anfänger

onemorenerd 11-06-2005 09:28

Das hat nicht zwangsweise miteinander zu tun sondern kommt auf deine Form an. Bitte mal posten.

saudade 11-06-2005 09:59

Form
 
$content .= '<tr><td><b>Image(GIF oder JPG), max 50kB<b></td><td><input type = "file" name = "bildatei"></td></tr>'."\n";

Ich weiss nicht, ob das das Gefragte ist.
?

Das Programm soll 4 Seiten erzeugen für eine Art Bücherdatenbank,
in welche auch Buchcoverbilder aufgenommen werden können.

Grüsse,
saudade

onemorenerd 11-06-2005 10:28

Nicht ganz das richtige, poste mal bitte alles zwischen <form ...> und </form> (einschließlich der beiden) wenns nicht zu viel ist.

(Und verwende die CODE-Tags hier im Forum.)

saudade 11-06-2005 11:15

PHP-Code:

  $content .= '<form action = "'.$_SERVER['PHP_SELF'].'" enctype = multipart/formdata method = "POST">'."\n";

    if (!isset(
$_POST['submit']))
    {
      
$book readout_csvdataset($iD);
    }    
    foreach(
$insert as $val)
    {      
      if (!isset(
$_POST['submit']))
        
$_POST[$val] = $book[$val];
      if (empty(
$_POST[$val]) && (isset($_POST['submit'])))
        {
          
$content .= '<tr><td colspan = "2" bgcolor = "FF0000">...</td></tr>'."\n";
          
$leereFelder++;
        }
        
$markedVal "*".ucfirst($val);
      
$content .= "<tr><td><b>$markedVal<b></td>".'<td><input type = "text" name = '.$val.' value = "'.$_POST[$val].'"></td></tr>'."\n";
    }

    if (isset(
$_POST['uploadOK']) && !$_POST['uploadOK'])
      
$content .= '<tr><td colspan = "2" bgcolor = "FF0000">Upload nicht funktioniert!('.$errorMsg.')</td></tr>'."\n";
    
$content .= '<tr><td><b>Image max 50kB<b></td><td><input type = "file" name = "bildatei"></td></tr>'."\n";
    
$content .= '<input type = "hidden" name = "leereFelder" value = "'.$leereFelder.'">'."\n";
    
$content .= '<input type = "hidden" name = "uploadOK" value = "'.$uploadOK.'">'."\n";
    
$content .= '<input type = "hidden" name = "iD" value = "'.$iD.'">'."\n";
    
$content .= '<tr><td colspan = "2"><input type = "submit" name = "submit" value = "absenden">'."\n";
    
$content .= '</form></td></tr>'


So, ich hoffe das ist aufschlussreich...

EDIT:

P.S.:
$insert ist ein Array mit den Namen der Eingabefelder...


onemorenerd 11-06-2005 11:47

Anführungszeichen um den Value von enctype setzen.
Wie/wo greifst du denn auf $_FILES bzw. die hochgeladene Datei zu?

hydrococcus 11-06-2005 11:56


EDIT:
Ups !

saudade 11-06-2005 12:14

Liste der Anhänge anzeigen (Anzahl: 1)
PHP-Code:

1)
  if (isset(
$_FILES['bildatei']) && $_POST['uploadOK'])
  {
      
$ret '';
    
preg_match('/\.(.+)$/'$_FILES['bildatei']['name'], $ret);
    
$extension trim($ret[1]);
    
$newFilepath '../images/'.$iD.'.'.$extension;
    
copy($_FILES['bildatei']['tmp_name'], $newFilepath);
    
$_POST['newFilepath'] = $newFilepath;
  }

2)
  if (isset(
$_POST['submit']) && ($_FILES['bildatei']['size'] > 0) && ($_FILES['bildatei']['size'] < 51200)  
      && 
in_array($_FILES['bildatei']['type'], $allowedImgs))
  {
    
$uploadOK 1;     
  }
  else 
  {
    
$uploadOK 0;    
  }

3)
  if (isset(
$_POST['bildatei']) && !in_array($_FILES['bildatei']['type'], $allowedImgs))
    
$errorMsg 'Falscher Datentyp...';
4)
  if (isset(
$_POST['bildatei']) && $_FILES['bildatei']['size']  > 51200)
    
$errorMsg 'Die Datei ist zu gro&szlig;'

1) zum Speichern der Datei
2) zum Prüfen, ob der Upload funktioniert hat
3)zum Prüfen des Datentyps(JPG etc.)
4)...und der Dateigröße

MelloPie 11-06-2005 12:30

es muss enctype="multipart/form-data" heissen

onemorenerd 11-06-2005 12:32

Wie kommst du nun zu der Erkenntnis, dass $_FILES leer wäre?

Füge doch mal folgendes zu Beginn der Funktion ein:
PHP-Code:

echo '<pre>'print_r($_FILES); print_r($_POST); echo '</pre>'


saudade 11-06-2005 12:58

Zitat:

Original geschrieben von onemorenerd
Wie kommst du nun zu der Erkenntnis, dass $_FILES leer wäre?

Füge doch mal folgendes zu Beginn der Funktion ein:
PHP-Code:

echo '<pre>'print_r($_FILES); print_r($_POST); echo '</pre>'


Habe ich gemacht: $_POST ist voll, $_FILES ist leer.
Array
(
)
Array
(
[vorname] => a
[nachname => b]
etc.
)

saudade 11-06-2005 13:03

Zitat:

Original geschrieben von MelloPie
es muss enctype="multipart/form-data" heissen
Thx, ist schon korrigiert, ändert aber leider nicht viel.

onemorenerd 11-06-2005 14:12

Was heißt hier etc - was ist mit $_POST['uploadOK']? Wenn du Hilfe willst, dann denk auch selber mal bißchen mit.

file_uploads=1 in php.ini?

saudade 11-06-2005 20:39

Sorry, [$UpLoadOK] => 0
(Copy/Paste geht nicht, weil ich auf diesem PC nur eine Kopie von dem Programm habe & keinen Server)
[bilddatei] => C:\\Pfad
[leereFelder] => 0
[submit] => absenden
[id] => 42aa2062764a4

onemorenerd 11-06-2005 21:50

file_uploads=1 in php.ini???

Zitat:

Original geschrieben von saudade
Copy/Paste geht nicht, weil ich auf diesem PC nur eine Kopie von dem Programm habe & keinen Server

Was? (mit scharfem S!) Heißt das, die Werte von eben sind nur ausgedacht?

Bei mir ist $_FILES nicht leer, wenn die Form enctype="multipart/form-data" ist.

Was anderes: Wo bekommt $iD denn mal einen Wert und warum copy() und nicht move_uploaded_file()?


Alle Zeitangaben in WEZ +2. Es ist jetzt 02:27 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG