• Login
  • Register
  • Zoek
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Filebase Entry
  • More Options

ICTscripters

Dé plek voor IT

Dé plek voor IT

Login

Geavanceerde opties
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  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
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  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
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  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
  9. Goedkope domeinnamen
  1. Dé plek voor IT - ICTscripters
  2. Forum
  3. Scripting & programmeren
  4. PHP + SQL

Forum

  • Na 15 jaar terug van weggeweest: iCriminals.nl is terug (BETA)!

    Syntax 19 januari 2026 om 09:34
  • Developer Gezocht

    Mikevdk 10 januari 2026 om 18:57
  • Op zoek naar de legends

    Syntax 5 januari 2026 om 13:50
  • [FREE] WeFact Hosting module

    Jeroen.G 13 oktober 2025 om 14:09
  • Help testers nodig voor android app Urgent

    urgentotservices 26 september 2025 om 10:21
  • Versio vervanger

    Jeroen.G 25 augustus 2025 om 15:56
  • Afspraken systeem met planbeperking

    Lijno 1 augustus 2025 om 23:04
  • Partner Gezocht om meerdere NFT Collecties op Open Sea te Plaatsen

    NFT Art Designer 1 maart 2025 om 14:08

Marktplaats

  • Verschillende domeinen

    Syntax 8 februari 2026 om 09:57
  • 350 Nieuwe Domeinnamen Januari 2026

    shiga 1 februari 2026 om 14:21
  • 321 Nieuwe Domeinnamen December 2025

    shiga 1 januari 2026 om 10:26

meerdere foto's uploaden

  • mitchellve
  • 24 januari 2015 om 21:39
  • mitchellve
    Intermediate
    Ontvangen Reacties
    10
    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/>';
     }
     }
     }
    ?>
    Toon Meer


    ziet iemand de fout?

    groetjes,
    Mitchell

  • T.Nijborg
    Hoofd Moderators
    Ontvangen Reacties
    31
    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
    Intermediate
    Ontvangen Reacties
    10
    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>
      Toon Meer
    • 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

    Images

    • Naamloos.png
      • 229,53 kB
      • 1.366 × 768
  • T.Nijborg
    Hoofd Moderators
    Ontvangen Reacties
    31
    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
    Intermediate
    Ontvangen Reacties
    10
    Berichten
    202
    • 25 januari 2015 om 14:18
    • #5

    @mentimjojo
    Na mijn PDO?

  • T.Nijborg
    Hoofd Moderators
    Ontvangen Reacties
    31
    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
    Intermediate
    Ontvangen Reacties
    10
    Berichten
    202
    • 25 januari 2015 om 15:01
    • #7

    Beste,

    Oke ik ga dit vanavond doen. heb morgen examen.

    bedankt!,
    Mitchell

  • mitchellve
    Intermediate
    Ontvangen Reacties
    10
    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>
    Toon Meer
  • T.Nijborg
    Hoofd Moderators
    Ontvangen Reacties
    31
    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
    Intermediate
    Ontvangen Reacties
    10
    Berichten
    202
    • 26 januari 2015 om 10:24
    • #10

    @mentimjojo weeral iets bijgeleerd vandaag ;)

  • T.Nijborg
    Hoofd Moderators
    Ontvangen Reacties
    31
    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
    Intermediate
    Ontvangen Reacties
    10
    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

Participate now!

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

Maak een account aan Login

ICT Nieuws

  • Fijne feestdagen

    tcbhome 28 december 2025 om 13:55
  • Kritieke update voor Really Simple Security-plug-in

    K.Rens 16 november 2024 om 16:12
  • ING Nederland streeft naar ondersteuning van Google Pay tegen eind februari

    K.Rens 2 november 2024 om 16:09

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
  1. Marktplaats
  2. Design
  3. Voorwaarden
  4. Ons team
  5. Leden
  6. Geschiedenis
  7. Regels
  8. Links
  9. Privacy Policy
ICTscripters ©2005 - 2026 , goedkope hosting door DiMoWeb.com, BE0558.915.582
Sponsors: Beste kattenhotel provincie Antwerpen | Beste Zetes eid kaartlezer webshop
Style: Nexus by cls-design
Stylename
Nexus
Manufacturer
cls-design
Licence
Commercial styles
Help
Supportforum
Visit cls-design