• Inloggen
  • Registreer
  • Zoeken
Dit topic
  • Overal
  • Dit topic
  • Dit forum
  • Artikelen
  • Pagina's
  • Forum
  • Downloads
  • Meer opties

ICTscripters

Dé plek voor IT

Dé plek voor IT

Aanmelden

Geavanceerde opties
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
    3. Onopgeloste topics
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
    3. Onopgeloste topics
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
    3. Onopgeloste topics
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  1. Dé plek voor IT - ICTscripters
  2. Forum
  3. Scripting & programmeren
  4. PHP + SQL

Forum

  • [Beta] Ottomaan: gratis browserspel met een echte, levende stad. Feedback gezocht!

    frio 27 oktober 2026 om 12:22
  • Port Father: beta van een browsergame in Antwerpen 1931, feedback welkom

    Jeroen.G 26 oktober 2026 om 10:33
  • Maffia Hotel: een browsergame waarin je van lobbygast naar spil van het hotel groeit

    eeyk 22 oktober 2026 om 18:43
  • Crime Club volledig herschreven vanaf nul

    frio 19 oktober 2026 om 23:57
  • Malavita (nieuwe maffia game, van 0)

    jos 19 oktober 2026 om 23:18
  • Herkent deze Notion-structuurscan echte problemen?

    Jeroen.G 19 oktober 2026 om 15:09
  • 🚀 WE ZOEKEN TESTERS! 🚀

    Servertjee 3 oktober 2026 om 10:56
  • Luchtvaartsoftware: Hoe technologie de moderne luchtvaart verandert

    saggy2829 30 september 2026 om 19:31

Marktplaats

  • [Aanbod] Stadskaart voor je browsergame: van menu naar klikbare stad, vanaf €200

    frio 29 oktober 2026 om 18:17
  • [Verkoop] G4G (Gangsters 4 Gangsters): volledige broncode, nieuw gebouwd in PHP 8.3 | € 30 per domein

    frio 27 oktober 2026 om 18:54
  • [TE KOOP] Malavita.be [Maffiaspel, gebaseerd op omicidio.nl, unieke code]

    Dpm_x 26 oktober 2026 om 00:22

meerdere foto's uploaden

  • mitchellve
  • 24 januari 2015 om 21:39
  • mitchellve
    Gevorderd
    Berichten
    202
    • 24 januari 2015 om 21:39
    • #1

    Ik zit met een probleem in mijn script.
    Ik wou mijn php kennis verbeteren. en een script maken voor meerdere foto's te uploaden in 1 keer. Het script werkt niet volledig juist.
    Het probleem zit hem als ik foto's selecteer. zal hij deze via de tmp map naar de juist locatie brengen. maar in de database gebeurt er iets raar... Normaal gezien moet hij altijd het pad opslagen in 1 rij. (uniek ID) maar hij slaagt alle paden op van de foto's in meerdere rijen.
    bv:
    foto 1 geupload pad => upload/foto1.png
    foto 2 geupload pad => upload/foto2.png upload/foto1.png
    en zou gaat dit maar voor tot het maximum aantal char word bereikt.
    Dit is mijn code:

    PHP
    <?php
    if (isset($_POST['submit'])) {
     $j = 0; //Variable for indexing uploaded image 
    
    
     $target_path = "upload/album/"; //Declaring Path for uploaded images
     for ($i = 0; $i < count($_FILES['file']['name']); $i++) 
     {
        
    
    
     
     //loop to get individual element from the array
    
    
     $validextensions = array("jpeg", "jpg", "png", "JPG"); //Extensions which are allowed
     $ext = explode('.', basename($_FILES['file']['name'][$i]));//explode file name from dot(.)
     $file_extension = end($ext); //store extensions in the variable
    
    
     $target_path = $target_path . md5(uniqid()) . "." . $ext[count($ext) - 1];//set the target path with a new name of image
     $j = $j + 1;//increment the number of uploaded images according to the files in array 
    
    
     if (($_FILES["file"]["size"][$i] < 1000000000000000) && in_array($file_extension, $validextensions)) 
     {
     if (move_uploaded_file($_FILES['file']['tmp_name'][$i], $target_path)) 
     {                                                                       //if file moved to uploads folder
     echo $j. ').<span id="noerror">foto uploaded is gelukt!.</span><br/>';
     $album = $dbh->prepare("insert into albumfoto(naam,album) values (?,?)");
     $naam_album=$_POST['albums'];
     $nam = "<a href='" .$target_path . "'class='top_up'><img class='album_foto' id='P" .substr($_FILES["file"]["name"][$i],0,strpos($_FILES["file"]["name"][$i],".")) ."'  src='" . $target_path . "' width='110' height='90'></img></a>";
     $album->bindParam(1,$nam);
     $album->bindParam(2, $naam_album); 
     $album->execute();
     }
     else 
     {                                   //if file was not moved.
     echo $j. ').<span id="error">probeer het nog eens. blijf dit zich voordoen contacteer webdesigner.</span><br/> ';
     }
     } 
     else 
     {//if file size and file type     was incorrect.
     echo $j. ').<span id="error">***een te grote foto of verkeerde extensie! alleen fotos ***</span><br/>';
     }
     }
     }
    ?>
    Meer tonen


    ziet iemand de fout?

    groetjes,
    Mitchell

  • Gast, wil je besparen op je domeinnamen? (ad)
  • T.Nijborg
    Hoofd Moderators
    Berichten
    504
    • 25 januari 2015 om 11:09
    • #2

    Een aantal vragen/punten die ik niet helemaal snap

    • Het lijkt erop alsof je een volledige style/img tag wil opslaan in de database, dat is sowieso al niet slim. Hou alle style, html tags etc zoveel mogelijk uit de php code en database. In dit geval sla gewoon op waar de foto staat.
    • Ik zie geen html form of iets in die richting. Hier kan uiteraard ook wat mis zijn.
    • Ik zie ook dat je de maximale bestand grote heel hoog hebt staan. Dit heeft met z'n groot nummer niet echt zin om te controleren.
    • Code
      $target_path = $target_path . md5(uniqid()) . "." . $ext[count($ext) - 1];

      Geen idee waarom die - 1 maar die is hier niet nodig volgens mij?! Kan dit je probleem zijn?

    Ik hoop dat je eruit kan komen :)

    Gr,
    Tim

    PHP, JAVA, C#, JAVASCRIPT, HTML(5), CSS(3) developer.
    Vragen?! Stuur me gerust een prive bericht :) !

  • mitchellve
    Gevorderd
    Berichten
    202
    • 25 januari 2015 om 11:53
    • #3

    @mentimjojo

    • Ik heb dit gedaan omdat anders waar de foto's worden uitgelezen er langer over doen als ik dit in mijn css & javacript file doe.
    • PHP
      <form enctype="multipart/form-data" action="albummaken.php" method="post">
      
      
       <div id="filediv">
       <?php
      if (isset($_POST['submit'])) {
       $j = 0; //Variable for indexing uploaded image 
      
      
       $target_path = "upload/album/"; //Declaring Path for uploaded images
       for ($i = 0; $i < count($_FILES['file']['name']); $i++) 
       {
          
      
      
       
       //loop to get individual element from the array
      
      
       $validextensions = array("jpeg", "jpg", "png", "JPG"); //Extensions which are allowed
       $ext = explode('.', basename($_FILES['file']['name'][$i]));//explode file name from dot(.)
       $file_extension = end($ext); //store extensions in the variable
      
      
       $target_path = $target_path . md5(uniqid()) . "." . $ext[count($ext) - 1];//set the target path with a new name of image
       $j = $j + 1;//increment the number of uploaded images according to the files in array 
      
      
       if (($_FILES["file"]["size"][$i] < 1000000000000000) && in_array($file_extension, $validextensions)) 
       {
       if (move_uploaded_file($_FILES['file']['tmp_name'][$i], $target_path)) 
       {                                                                       //if file moved to uploads folder
       echo $j. ').<span id="noerror">foto uploaded is gelukt!.</span><br/>';
       $album = $dbh->prepare("insert into albumfoto(naam,album) values (?,?)");
       $naam_album=$_POST['albums'];
       $nam = "<a href='" .$target_path . "'class='top_up'><img class='album_foto' id='P" .substr($_FILES["file"]["name"][$i],0,strpos($_FILES["file"]["name"][$i],".")) ."'  src='" . $target_path . "' width='110' height='90'></img></a>";
       $album->bindParam(1,$nam);
       $album->bindParam(2, $naam_album); 
       $album->execute();
       }
       else 
       {                                   //if file was not moved.
       echo $j. ').<span id="error">probeer het nog eens. blijf dit zich voordoen contacteer webdesigner.</span><br/> ';
       }
       } 
       else 
       {//if file size and file type     was incorrect.
       echo $j. ').<span id="error">***een te grote foto of verkeerde extensie! alleen fotos ***</span><br/>';
       }
       }
       }
      ?>
        <h2>Foto's uploaden in album</h2>
        <h5> Kies je album waar de foto's naartoe moeten </h5>
       
         <select name="albums"> 
      <?php
          $album =  $dbh->query("SELECT naam FROM album");
          foreach($album as $var){
              echo "<option name='album_naam' value='" . $var['naam'] . "'>";
              echo $var["naam"];
              echo "</option>";
         }
      ?>
       </select>
        <br>
        <br>
       <input name="file[]" type="file" multiple id="file"/></div>
       <br/>
       <input type="submit" value="Upload de foto's" name="submit" id="upload" class="upload"/>
       </form>
      Meer tonen
    • Ik heb dit gedaan om te testen dat daar de fout lag... dus dat mag eigenlijk genegeerd worden :)
    • als ik deze -1 wegdoen lukt het helemaal niet
    • hij zegt dat het probleem op deze lijn zit:
      Code
      if (move_uploaded_file($_FILES['file']['tmp_name'][$i], $target_path))

    ik zie toch niks fout bij deze lijn...

    • heb een foto toegevoegd wat er in mijn database komt te staan. je kan zien dat hij meerdere foto's in 1 rij opslaat.

    groetjes,
    Mitchell

    Afbeeldingen

    • Naamloos.png
      • 229,53 kB
      • 1.366 × 768
  • T.Nijborg
    Hoofd Moderators
    Berichten
    504
    • 25 januari 2015 om 13:23
    • #4

    Ja dat vermoed ik ook, om een of andere reden zet hij de variable $target_path niet opnieuw. Probeer is als je data is opgeslagen, binnen de for loop even unset($target_path) te doen. Op deze manier, wanneer de for loop rij 2 gaat uitvoeren is $target_path leeg.

    PHP, JAVA, C#, JAVASCRIPT, HTML(5), CSS(3) developer.
    Vragen?! Stuur me gerust een prive bericht :) !

  • mitchellve
    Gevorderd
    Berichten
    202
    • 25 januari 2015 om 14:18
    • #5

    @mentimjojo
    Na mijn PDO?

  • T.Nijborg
    Hoofd Moderators
    Berichten
    504
    • 25 januari 2015 om 14:49
    • #6

    @mitchellve Na dat je er klaar mee bent, dus het beste is aan het einde van je for loop

    PHP, JAVA, C#, JAVASCRIPT, HTML(5), CSS(3) developer.
    Vragen?! Stuur me gerust een prive bericht :) !

  • mitchellve
    Gevorderd
    Berichten
    202
    • 25 januari 2015 om 15:01
    • #7

    Beste,

    Oke ik ga dit vanavond doen. heb morgen examen.

    bedankt!,
    Mitchell

  • mitchellve
    Gevorderd
    Berichten
    202
    • 25 januari 2015 om 19:38
    • #8

    @mentimjojo
    de unset doet het. heb wel even de declaratie van target_path terug in mijn for loop gestoken.
    Hier is mijn code zodat andere mensen het kunnen gebruiken:

    PHP
    <form enctype="multipart/form-data" action="albummaken.php" method="post">
    
    
     <div id="filediv">
     <?php
    if (isset($_POST['submit'])) {
     $j = 0; //Variable for indexing uploaded image 
    
    
     for ($i = 0; $i < count($_FILES['file']['name']); $i++) 
     {
      $target_path = "upload/album/"; //Declaring Path for uploaded images   
    
    
     
     //loop to get individual element from the array
    
    
     $validextensions = array("jpeg", "jpg", "png", "JPG"); //Extensions which are allowed
     $ext = explode('.', basename($_FILES['file']['name'][$i]));//explode file name from dot(.)
     $file_extension = end($ext); //store extensions in the variable
    
    
     $target_path = $target_path . md5(uniqid()) . "." . $ext[count($ext) - 1];//set the target path with a new name of image
     $j = $j + 1;//increment the number of uploaded images according to the files in array 
    
    
     if (($_FILES["file"]["size"][$i] < 1000000000000000) && in_array($file_extension, $validextensions)) 
     {
     if (move_uploaded_file($_FILES['file']['tmp_name'][$i], $target_path)) 
     {                                                                       //if file moved to uploads folder
     echo $j. ').<span id="noerror">foto uploaded is gelukt!.</span><br/>';
     $album = $dbh->prepare("insert into albumfoto(naam,album) values (?,?)");
     $naam_album=$_POST['albums'];
     $nam = "<a href='" .$target_path . "'class='top_up'><img class='album_foto' id='P" .substr($_FILES["file"]["name"][$i],0,strpos($_FILES["file"]["name"][$i],".")) ."'  src='" . $target_path . "' width='110' height='90'></img></a>";
     $album->bindParam(1,$nam);
     $album->bindParam(2, $naam_album); 
     $album->execute();
     }
     else 
     {                                   //if file was not moved.
     echo $j. ').<span id="error">probeer het nog eens. blijf dit zich voordoen contacteer webdesigner.</span><br/> ';
     }
     } 
     else 
     {//if file size and file type     was incorrect.
     echo $j. ').<span id="error">***een te grote foto of verkeerde extensie! alleen fotos ***</span><br/>';
     }
     unset($target_path);
     }
     }
    ?>
      <h2>Foto's uploaden in album</h2>
      <h5> Kies je album waar de foto's naartoe moeten </h5>
     
       <select name="albums"> 
    <?php
        $album =  $dbh->query("SELECT naam FROM album");
        foreach($album as $var){
            echo "<option name='album_naam' value='" . $var['naam'] . "'>";
            echo $var["naam"];
            echo "</option>";
       }
    ?>
     </select>
      <br>
      <br>
     <input name="file[]" type="file" multiple id="file"/></div>
     <br/>
     <input type="submit" value="Upload de foto's" name="submit" id="upload" class="upload"/>
     </form>
    Meer tonen
  • T.Nijborg
    Hoofd Moderators
    Berichten
    504
    • 26 januari 2015 om 08:52
    • #9

    @mitchellve Top! Dat betekent dus dat je variabele niet opnieuw gezet werd maar dat de tekst erbij werd gezet. unset() kun je in princiepe overal voor gebruiken!

    PHP, JAVA, C#, JAVASCRIPT, HTML(5), CSS(3) developer.
    Vragen?! Stuur me gerust een prive bericht :) !

  • mitchellve
    Gevorderd
    Berichten
    202
    • 26 januari 2015 om 10:24
    • #10

    @mentimjojo weeral iets bijgeleerd vandaag ;)

  • T.Nijborg
    Hoofd Moderators
    Berichten
    504
    • 26 januari 2015 om 13:59
    • #11

    @mitchellve Mooizo ik snap alleen niet waarom hij de variabele niet opnieuw zetten maar er bij gaat schrijven. Ik weet dat het volgende zet.

    Code
    $variabele = "foto/";

    Dit zou de variebele moeten zetten, dus als je dat op nieuw doet in een for loop verwijderd hij de huidige waarde en zet hij de nieuwe, tenzij je het volgende doet:

    Code
    $variabele += "foto/"

    Dit schrijft er bij om het moment dat je dit in een for loop stopt. Maarja het werkt!

    PHP, JAVA, C#, JAVASCRIPT, HTML(5), CSS(3) developer.
    Vragen?! Stuur me gerust een prive bericht :) !

  • mitchellve
    Gevorderd
    Berichten
    202
    • 26 januari 2015 om 16:09
    • #12

    @mentimjojo
    Ik vind het ook vreemd wat deze for loop doet.
    Maar ja het belangrijkste is dat het werkt :)

    groetjes,
    Mitchell

Registratie

Nog geen account? Registreer je nu en word deel van onze community!

Nu registreren Aanmelden

ICT Nieuws

  • PHP waarschuwt voor twee ernstige bugs die makkelijk uit te buiten lijken

    Aaron 22 oktober 2026 om 22:19

Blogs

  • Functioneel ontwerp

    Dees 28 december 2014 om 12:38
  • Access Control List implementatie in PHP/MySQL - deel 1/2

    FangorN 28 december 2018 om 12:35
  • Access Control List implementatie in PHP/MySQL - deel 2/2

    FangorN 29 december 2018 om 12:37

Gebruikers die dit topic bekijken

  • 1 Gasten
  1. Marktplaats
  2. Design
  3. Voorwaarden
  4. Ons team
  5. Leden
  6. Geschiedenis
  7. Regels
  8. Links
  9. Privacyverklaring
  10. Contact
ICTscripters ©2005 - 2026 , goedkope hosting door DiMoWeb.com, BE0558.915.582
Sponsors: Beste kattenhotel provincie Antwerpen
Style: Nexus by cls-design
Stylename
Nexus
Manufacturer
cls-design
Licence
Commercial styles
Help
Supportforum
Visit cls-design