tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
10
ZUGRIFFE
245
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    DJTommyB DJTommyB ist offline Mitglied
    Registriert seit
    Apr 2003
    Ort
    Klagenfurt/ Österreich
    Beiträge
    15
    Hallo zusammen!

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

    Hier mal die Source:

    PHP-Code:
    <?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
     

  2. #2
    drucko drucko ist offline Mitglied Gold
    Registriert seit
    Sep 2007
    Beiträge
    244
    Hallo,

    du schreibst
    PHP-Code:
    foreach($_FILES["picture"] as $data
    und arbeitest dann mit $_FILES["picture"] weiter...

    MfG
     

  3. #3
    DJTommyB DJTommyB ist offline Mitglied
    Registriert seit
    Apr 2003
    Ort
    Klagenfurt/ Österreich
    Beiträge
    15
    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    
    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
     

  4. #4
    kuddeldaddeldu kuddeldaddeldu ist offline Mitglied Diamant
    Registriert seit
    Dec 2007
    Ort
    Bremen
    Beiträge
    3.418
    Hi,

    Zitat Zitat von DJTommyB Beitrag anzeigen
    also passt alles...
    das sieht aber nicht danach aus. Die letzten 3 Dateien wurden nicht hochgeladen.

    LG
     
    Da es nötig zu werden scheint: Ich leiste hier keinen Support über PN. Stellt Rückfragen zu Euren Problemen bitte in Eurem Thread, dann können alle helfen.

  5. #5
    DJTommyB DJTommyB ist offline Mitglied
    Registriert seit
    Apr 2003
    Ort
    Klagenfurt/ Österreich
    Beiträge
    15
    Hab jetzt nochmal debugged.... Script geht bis zur
    Code :
    1
    
    if(move_uploaded_file ...
    abfrage, dannach speichert er die bilder einfach nicht... und ich weiß einfach nich wieso...
     

  6. #6
    kuddeldaddeldu kuddeldaddeldu ist offline Mitglied Diamant
    Registriert seit
    Dec 2007
    Ort
    Bremen
    Beiträge
    3.418
    Hi,

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

    LG
     
    Da es nötig zu werden scheint: Ich leiste hier keinen Support über PN. Stellt Rückfragen zu Euren Problemen bitte in Eurem Thread, dann können alle helfen.

  7. #7
    DJTommyB DJTommyB ist offline Mitglied
    Registriert seit
    Apr 2003
    Ort
    Klagenfurt/ Österreich
    Beiträge
    15
    Zitat Zitat von kuddeldaddeldu Beitrag anzeigen
    Hi,



    das sieht aber nicht danach aus. Die letzten 3 Dateien wurden nicht hochgeladen.

    LG

    die letzten 3 dateien waren auch leer... sprich ich wollte 7 dateien uploaden
     

  8. #8
    DJTommyB DJTommyB ist offline Mitglied
    Registriert seit
    Apr 2003
    Ort
    Klagenfurt/ Österreich
    Beiträge
    15
    Zitat Zitat von kuddeldaddeldu Beitrag anzeigen
    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    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?
    Geändert von DJTommyB (18.09.08 um 01:02 Uhr)
     

  9. #9
    DJTommyB DJTommyB ist offline Mitglied
    Registriert seit
    Apr 2003
    Ort
    Klagenfurt/ Österreich
    Beiträge
    15
    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
     

  10. #10
    DJTommyB DJTommyB ist offline Mitglied
    Registriert seit
    Apr 2003
    Ort
    Klagenfurt/ Österreich
    Beiträge
    15
    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-Code:
    <?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
    Geändert von DJTommyB (18.09.08 um 09:50 Uhr)
     

  11. #11
    kuddeldaddeldu kuddeldaddeldu ist offline Mitglied Diamant
    Registriert seit
    Dec 2007
    Ort
    Bremen
    Beiträge
    3.418
    Hi,

    das liegt an der foreach-Schleife über $_FILES['picture']. Schau Dir mal weiter oben Deine Ausgabe davon an. Dieses Array hat immer genau 5 Elemente, ob Du jetzt 3 Dateien hochlädst oder 30. Du möchtest eine Schleife über eines dieser 5 Elemente machen.

    LG
     
    Da es nötig zu werden scheint: Ich leiste hier keinen Support über PN. Stellt Rückfragen zu Euren Problemen bitte in Eurem Thread, dann können alle helfen.

Ähnliche Themen

  1. Probleme bei Dateiupload
    Von Html im Forum PHP
    Antworten: 8
    Letzter Beitrag: 23.03.08, 01:39
  2. Dateiupload mit PHP
    Von Grunge im Forum PHP
    Antworten: 14
    Letzter Beitrag: 30.04.06, 15:32
  3. PHP + MySQL DateiUpload-Probleme
    Von Baron Sengir im Forum PHP
    Antworten: 15
    Letzter Beitrag: 22.02.06, 15:39
  4. Dateiupload
    Von Seven Secrets im Forum PHP
    Antworten: 7
    Letzter Beitrag: 03.10.03, 15:06
  5. VB5 Dateiupload an PHP
    Von sonline im Forum Visual Basic 6.0
    Antworten: 4
    Letzter Beitrag: 22.08.03, 17:30