• 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

  • Ictscripters Chat

    AarClay 21 april 2026 om 11:34
  • Het Grote Vibe Code Topic

    Jeroen.G 8 april 2026 om 14:00
  • PWYL source gezocht

    Syntax 25 maart 2026 om 11:44
  • Help testers nodig voor android app Urgent

    Servertjee 20 februari 2026 om 12:07
  • Partner Gezocht om meerdere NFT Collecties op Open Sea te Plaatsen

    Servertjee 20 februari 2026 om 12:06
  • Afspraken systeem met planbeperking

    Jeffrey.Hoekman 20 februari 2026 om 11:52
  • Developer Gezocht

    Servertjee 19 februari 2026 om 17:31
  • Na 15 jaar terug van weggeweest: iCriminals.nl is terug (BETA)!

    Servertjee 18 februari 2026 om 16:57

Marktplaats

  • 370 Nieuwe Domeinnamen April 2026

    shiga 1 mei 2026 om 12:06
  • Snel een website nodig?

    Syntax 10 april 2026 om 12:55
  • Sicarras.com - Moderne Mafia Text-Based RPG

    Syntax 5 april 2026 om 16:22

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

  • Google Cloud is in de problemen (en AWS weet het)

    ICTscripters 14 april 2026 om 12:01
  • Nebius kondigt bouw aan van een van Europa's grootste datacenters

    ICTscripters 31 maart 2026 om 12:03
  • Samsung zal miljoenen verdienen aan Apple iPhone Fold dankzij zijn 12GB RAM

    ICTscripters 11 maart 2026 om 22:42

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

  • 2 Gasten
  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