Probleme bei Dateiupload

DJTommyB

Grünschnabel
Hallo zusammen!

Ich hab momentan ein rießen Problem mit nem mehrfachen Dateiupload.

Hier mal die Source:

PHP:
<?php 
if($_GET['action'] == "upload")
		{
			$uploaddir = "./gallery/";
			$msg = "";
			$i = 0;
            foreach($_FILES["picture"] as $data)
			{
          		if($_FILES["picture"] ["size"][$i] != 0)
				{
              		if($_FILES["picture"] ["type"][$i] == "image/jpeg" || $_FILES["picture"] ["type"][$i] == "image/pjpeg" || $_FILES["picture"] ["type"][$i] == "image/gif")
					{
                  		if(move_uploaded_file($_FILES["picture"]["tmp_name"][$i], $uploaddir . $_FILES["picture"]["name"][$i]))
						{
							$msg .= "Bild ".$i." gespeichert<br>\n";
						}
						else
						{
							$msg .= "Bild ".$i." nicht gespeichert. Fehlercode:".$_FILES["picture"]["error"][$i]."<br>\n";
						}
              		}
					else
					{
						$msg .= "Bild ".$i." kein JPEG oder GIF<br>\n";
					}
          		}
				$i++;
			}  		
		}  
		?>
        <form enctype="multipart/form-data" action="?tar=uploadpics&action=upload&id=<?php echo $_GET['id']; ?>" method="POST">
        <table width="100%" border="0" cellpadding="0" cellspacing="0">
		<?php	
		for($i=0;$i<10;$i++)
		{
			
			echo "  <tr>\n";
			echo "    <td width='10%' align='left' valign='top'>&nbsp;</td>\n";
     		echo "    <td width='90%' align='left' valign='top'><input type='file' name='picture[]' /></td>\n";
			echo "  </tr>\n";
			echo "  <tr>\n";
			echo "    <td width='10%' align='left' valign='top'>&nbsp;</td>\n";
     		echo "    <td width='90%' align='left' valign='top'>&nbsp;</td>\n";
			echo "  </tr>\n";
		}
		?>
          <tr>
            <td width="10%" align="left" valign="top">&nbsp;</td>
            <td width="90%" align="left" valign="top">&nbsp;</td>
          </tr>
          <tr>
            <td width="10%" align="left" valign="top"><input type='hidden' name='MAX_FILE_SIZE' value='300000'></td>
            <td width="90%" align="left" valign="top"><input type="submit" value="Bilder hochladen" /></td>
          </tr>
        </table>
        <?php
		echo $msg;
?>

Probleme gibt es 2:
1) Die Datei wird nicht hochgeladen, Fehlercode bekomme ich "0" zurück (was eigentlich bedeutet dass die Datei hochgeladen werden müsste...)
Ordner ist natürlich CHMOD 777

2) Nach dem fünften File bricht die Schleife ab, wieso auch immer, heißt also dass nur 5 Files die Schleife passieren danach ist schluss...


was mache ich falsch?

Vielen Dank im Vorraus =)

mfg
Tommy
 
nö hat damit gar nix zu tun.... hab schon alles probiert und kriegs nicht hin...

hab mir mal innerhalb der schleife $_FILES['picture'] ausgeben lassen, das kam dabei raus:

Code:
Array ( 
	[name] => Array ( 
    	[0] => artdel.gif 
        [1] => catadd.gif 
        [2] => news.gif 
        [3] => shopping-cart-blue.gif 
        [4] => artadd.gif 
        [5] => artedit.gif 
        [6] => catedit.gif 
        [7] => 
        [8] => 
        [9] => ) 
    [type] => Array ( 
    	[0] => image/gif 
        [1] => image/gif 
        [2] => image/gif 
        [3] => image/gif 
        [4] => image/gif 
        [5] => image/gif 
        [6] => image/gif 
        [7] => 
        [8] => 
        [9] => ) 
    [tmp_name] => Array ( 
        [0] => /tmp/phpC9DIVN 
        [1] => /tmp/phpBL0oBi 
        [2] => /tmp/php0jP5gN 
        [3] => /tmp/phpxB9MWh 
        [4] => /tmp/phpE5YuCM 
        [5] => /tmp/phpOicdih 
        [6] => /tmp/phpAoTVXL 
        [7] => 
        [8] => 
        [9] => ) 
    [error] => Array ( 
        [0] => 0 
        [1] => 0 
        [2] => 0 
        [3] => 0 
        [4] => 0 
        [5] => 0 
        [6] => 0 
        [7] => 4 
        [8] => 4 
        [9] => 4 ) 
    [size] => Array ( 
    	[0] => 331 
        [1] => 339 
        [2] => 214 
        [3] => 206 
        [4] => 341 
        [5] => 337 
        [6] => 339 
        [7] => 0 
        [8] => 0 
        [9] => 0 ) 
    )

also passt alles... und dennoch gehts nicht
 
Hab jetzt nochmal debugged.... Script geht bis zur
Code:
if(move_uploaded_file ...
abfrage, dannach speichert er die bilder einfach nicht... und ich weiß einfach nich wieso... :(
 
Hi,

ist display_errors auf "on" und error_reporting voll aufgedreht? Was steht in Deiner $msg-Variablen?

LG


display_errors ist in, error_reporting ebenfalls....

in meiner $msg steht wie folgt:


Code:
Bild 0 nicht gespeichert. Fehlercode:0

Bild 1 nicht gespeichert. Fehlercode:0

Bild 2 nicht gespeichert. Fehlercode:0

Bild 3 nicht gespeichert. Fehlercode:0

Bild 4 nicht gespeichert. Fehlercode:0

suspekt auch dass nur 5 files durch die schleife wandern...





EDIT: oh oh oh.... error_reporting war aus... habs mal angemacht und folgendes kam raus:

Warning: move_uploaded_file(http://www.vespaland.at/dev/bilder/artdel.gif) [function.move-uploaded-file]: failed to open stream: HTTP wrapper does not support writeable connections. in /var/www/5321034874/kdn-125-www/dev/admin/admin.class.php on line 802

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phplFoYeS' to 'http://www.vespaland.at/dev/bilder/artdel.gif' in /var/www/5321034874/kdn-125-www/dev/admin/admin.class.php on line 802

usw...

was heist das?
 
Zuletzt bearbeitet:
so. hab mal versucht, das ganze in den ordner zu speichern in dem auch die datei liegt und es t... ist also scheinbar ein einfacher ordner fehler. mal versuchen zu ändern ;)
 
so leute.

upload als solches geht wunderbar, einziges was ich immer noch nicht verstehe ist, wieso die schleife nur 5 mal durchgemacht wird... hier die aktuelle source

PHP:
<?php
if($_GET['action'] == "upload")
		{
			$msg = "";
			$i = 0;
            foreach($_FILES['picture'] as $data)
			{
				$id = $i+1;
				$uploaddir = "bilder/";				
     			#Prüfung ob Dateigröße größer als 0 ist
          		if($_FILES['picture']['size'][$i] != 0)
				{
              		#Prüfen ob die hochgeladene Dateityp erlaubt ist
              		if($_FILES['picture']['type'][$i] == 'image/jpeg' || $_FILES['picture']['type'][$i] == 'image/pjpeg' || $_FILES['picture']['type'][$i] == 'image/gif')
					{
                  		#Datei verschieben
                  		if(move_uploaded_file($_FILES['picture']['tmp_name'][$i], $uploaddir . $_FILES['picture']['name'][$i]))
						{
							$msg .= "Bild ".$i." gespeichert<br>\n";
							$query = "INSERT INTO ".PICTURE_TABLE." (gallery_id,name,picture,date) VALUES ('".$_GET['id']."','".$_FILES['picture']['name'][$i]."','".$uploaddir . $_FILES['picture']['name'][$i]."','".time()."')";
							if(mysql_query($query))
							{
								$msg .= "Bild ".$id." in Datgenbank verknüpft<br>\n"; 
							}
							else
							{
								$msg .= "Bild ".$id." nicht in Datgenbank verknüpft<br>\n";
							}
						}
						else
						{
							$msg .= "Bild ".$id." nicht gespeichert. Fehlercode:".$_FILES['picture']['error'][$i]."<br>\n";
							$msg .= "Uploadddir: ".$uploaddir."<br><br>";
						}
              		}
					else
					{
						$msg .= "Bild ".$id." kein JPEG oder GIF<br>\n";
					}
          		}
				else
				{
					$msg .= "Bild ".$id." wurde nicht ausgewählt<br>\n";
				}
				$i++;
			} 
?>
<form enctype="multipart/form-data" action="?tar=uploadpics&action=upload&id=<?php echo $_GET['id']; ?>" method="POST">
        <table width="100%" border="0" cellpadding="0" cellspacing="0">
		<?	
		for($i=0;$i<10;$i++)
		{
			$id = $i+1;	
			echo "  <tr>\n";
			echo "    <td width='10%' align='middle' valign='top'>Bild ".$id.":</td>\n";
     		echo "    <td width='90%' align='left' valign='top'><input type='file' name='picture[$i]' /></td>\n";
			echo "  </tr>\n";
			echo "  <tr>\n";
			echo "    <td width='10%' align='left' valign='top'>&nbsp;</td>\n";
     		echo "    <td width='90%' align='left' valign='top'>&nbsp;</td>\n";
			echo "  </tr>\n";
		}
		?>
          <tr>
            <td width="10%" align="left" valign="top">&nbsp;</td>
            <td width="90%" align="left" valign="top">&nbsp;</td>
          </tr>
          <tr>
            <td width="10%" align="left" valign="top"><input type='hidden' name='MAX_FILE_SIZE' value='300000'></td>
            <td width="90%" align="left" valign="top"><input type="submit" value="Bilder hochladen" /><br /><div class="footer">(Bitte nur einmal klicken und warten.)<br /><br /></div></td>
          </tr>
        </table>
        
        <?
		echo $msg;

?>

Bitte nochmals um Hilfe
 
Zuletzt bearbeitet:
Zurück