Image upload naar database of naar directory??

Status
Niet open voor verdere reacties.

bas007gsm

Gebruiker
Lid geworden
4 jan 2002
Berichten
394
Beste mensen,

Ik ben druk doende met het maken van een bestelsysteem enz. Maar bij het maken van de database liep ik tegen een "probleem" op, namelijk wat is de beste manier om afbeeldingen te uploaden. De gegevens zoals prijs en artikelnummer staan allemaal netjes in de database, en moeten samen met de afbeelding worden weergegeven. Wat is dan de beste optie, de afbeelding uploaden naar de database of naar een directory op de server?
 
Volgens mij kun je het beste de afbeelding in een directory zetten en dan in de database de naam van de afbeelding bij de rest van de gegevens zetten. Bij het opvragen van de gegevens uit de database kun je ook de naam van de afbeelding opvragen en hem uit de directory lezen.
 
Nou ik heb een en ander doorgelezen, en voor kleine afbeeldingen kun je dus best de database gebruiken!

hier nog ff wat info:
http://www.yapf.net/faq.php?cmd=100&itemid=621

Ondertussen heb ik al een script weten te maken, alleen nog 2 fouten die maar terug blijven komen:

Notice: Undefined index: file in /home/bas007gsm/domains/nathalzen.nl/public_html/cms/1/upload1.php on line 7
tempname 2:

Notice: Undefined index: file in /home/bas007gsm/domains/nathalzen.nl/public_html/cms/1/upload1.php on line 8
FOUT: in openen bestand

dit is de code:
PHP:
<?php
error_reporting(E_ALL); 

if (isset($_POST['submit']))  { /* als er op de submit knop is gedrukt… */ 
  echo "tempname 2: " .$_POST['file']['name'] ."<br>\n"; 
  if ($_POST['file']['tmp_name'] != "none") { /* het bestand mag uiteraard niet leeg zijn */ 
    $fp = @fopen($_POST['file']['tmp_name'],"r") or die ('FOUT: in openen bestand'); /* poging tot openen van het bestand */ 
    if ($fp) { /* als het openen is gelukt */ 
      $content = fread($fp,filesize($_POST['file']['tmp_name'])); /* eerst de inhoud van t bestand uitlezen */ 
      fclose($fp); /* bestand sluiten */ 
        echo "2 tempname 2: " .$_POST['file']['name'] ."<br>\n"; 
        echo "2 temptype 2: " .$_POST['file']['type'] ."<br>\n"; 
        echo "2 tempsize 2: " .filesize($_POST['file']['tmp_name']) ."<br>\n"; 
		
      $db = mysql_connect("localhost","***", "***") or die ('FOUT : bij verbinden database');/* database connexie openen */ 
      mysql_select_db("***",$db) or die('FOUT : selecteren database'); /* database selecteren */ 

      $sql = "INSERT INTO images VALUES(0,'" . $_POST['file']['name'] . "','" . $_POST['file']['type'] . "','" . filesize($_POST['file']['tmp_name']) . "','" . addslashes($content) . "')"; 
      @mysql_query($sql,$db) or die('FOUT : uitvoeren query mislukt'); /* en query uitvoeren */ 
      mysql_close($db); 

      print "Bestand opgeslagen"; 
    } else { /* als het bestand niet geopend kan worden, dus !$fp */ 
      print "Kan bestand niet openen"; 
    } 
  } else { 
    print "Geen bestand geselecteerd!"; 
  } 
} else { ?> 


<html> 

<head> 
<title>Upload File</title> 
</head> 

<body> 

<form action="upload1.php" method="POST" enctype="multipart/form-data"> 
Bestand: <input type="file" name="file">&nbsp;<input type="submit" name="submit" value="Upload"> 
</form> 

</body> 
<? } ?>

ziet iemand wat voor fout ik heb gemaakt, en wat houd die error precies in, ik heb wel gezocht, maar kon het niet in verband brengen met mijn script
 
Tis $_FILES of $HTTP_POST_FILES wanneer je bestanden gaat uploaden, niet $_POST :)
 
hmm das dom, maar nu is de error weg, alleen gebeurt er nu niets geen boodschap dat het gelukt is,maar ook niet dat het mislukt is....ook wordt er niets in de database geschreven.....

De code is nu:


PHP:
<?php
error_reporting(E_ALL); 

if (isset($_FILE['submit']))  { /* als er op de submit knop is gedrukt… */ 
  echo "tempname 2: " .$_FILE[file][name] ."<br>\n"; 
  if ($_FILE[file][tmp_name] != "none") { /* het bestand mag uiteraard niet leeg zijn */ 
    $fp = @fopen($_FILE[file][tmp_name],"r") or die ('FOUT: in openen bestand'); /* poging tot openen van het bestand */ 
    if ($fp) { /* als het openen is gelukt */ 
      $content = fread($fp,filesize($_FILE['file'][tmp_name])); /* eerst de inhoud van t bestand uitlezen */ 
      fclose($fp); /* bestand sluiten */ 
        echo "2 tempname 2: " .$_FILE[file][name] ."<br>\n"; 
        echo "2 temptype 2: " .$_FILE[file][type] ."<br>\n"; 
        echo "2 tempsize 2: " .filesize($_FILE[file][tmp_name]) ."<br>\n"; 
		
      $db = mysql_connect("localhost","***", "***") or die ('FOUT : bij verbinden database');/* database connexie openen */ 
      mysql_select_db("***",$db) or die('FOUT : selecteren database'); /* database selecteren */ 

      $sql = "INSERT INTO images VALUES(0,'" . $_FILE[file][name] . "','" . $_FILE[file][type] . "','" . filesize($_FILE[file][tmp_name]) . "','" . addslashes($content) . "')" or die ('FOUT: bij maken connection'); 
      @mysql_query($sql,$db) or die('FOUT : uitvoeren query mislukt'); /* en query uitvoeren */ 
      mysql_close($db); 

      print "Bestand opgeslagen"; 
    } else { /* als het bestand niet geopend kan worden, dus !$fp */ 
      print "Kan bestand niet openen"; 
    } 
  } else { 
    print "Geen bestand geselecteerd!"; 
  } 
} else { ?> 


<html> 

<head> 
<title>Upload File</title> 
</head> 

<body> 

<form action="upload1.php" method="POST" enctype="multipart/form-data"> 
Bestand: <input type="file" name="file">&nbsp;<input type="submit" name="submit" value="Upload"> 
</form> 

</body> 
<? } ?>
 
AHUM okay maar nog steeds zelfde probleem en geen error...

PHP:
<?php
error_reporting(E_ALL); 

if (isset($_FILES['submit']))  { /* als er op de submit knop is gedrukt… */ 
  echo "tempname 2: " .$_FILES[file][name] ."<br>\n"; 
  if ($_FILES[file][tmp_name] != "none") { /* het bestand mag uiteraard niet leeg zijn */ 
    $fp = @fopen($_FILES[file][tmp_name],"r") or die ('FOUT: in openen bestand'); /* poging tot openen van het bestand */ 
    if ($fp) { /* als het openen is gelukt */ 
      $content = fread($fp,filesize($_FILES['file'][tmp_name])); /* eerst de inhoud van t bestand uitlezen */ 
      fclose($fp); /* bestand sluiten */ 
        echo "2 tempname 2: " .$_FILES[file][name] ."<br>\n"; 
        echo "2 temptype 2: " .$_FILES[file][type] ."<br>\n"; 
        echo "2 tempsize 2: " .filesize($_FILES[file][tmp_name]) ."<br>\n"; 
		
      $db = mysql_connect("localhost","***", "***") or die ('FOUT : bij verbinden database');/* database connexie openen */ 
      mysql_select_db("***",$db) or die('FOUT : selecteren database'); /* database selecteren */ 

      $sql = "INSERT INTO images VALUES(0,'" . $_FILES[file][name] . "','" . $_FILES[file][type] . "','" . filesize($_FILES[file][tmp_name]) . "','" . addslashes($content) . "')" or die ('FOUT: bij maken connection'); 
      @mysql_query($sql,$db) or die('FOUT : uitvoeren query mislukt'); /* en query uitvoeren */ 
      mysql_close($db); 

      print "Bestand opgeslagen"; 
    } else { /* als het bestand niet geopend kan worden, dus !$fp */ 
      print "Kan bestand niet openen"; 
    } 
  } else { 
    print "Geen bestand geselecteerd!"; 
  } 
} else { ?> 


<html> 

<head> 
<title>Upload File</title> 
</head> 

<body> 

<form action="upload1.php" method="POST" enctype="multipart/form-data"> 
Bestand: <input type="file" name="file">&nbsp;<input type="submit" name="submit" value="Upload"> 
</form> 

</body> 
<? } ?>
 
Niet alles komt in $_FILES te staan, alle informatie over de geuploade bestanden komt in $_FILES te staan :). Voer maar eens een print_r($_FILES); uit.
Het is namelijk gewoon $_POST['submit']. Waarom controleer je trouwens of die bestaat ? Je doet er geen biet mee. Check dan of $_FILES['file'] bestaat :)
 
hmm okay, alleen krijg ik nu weer een foutmelding namelijk:
Notice: Undefined index: submit in /home/bas007gsm/domains/nathalzen.nl/public_html/cms/1/upload1.php on line 4

en waar moet k die prints tussen zetten?
code is nu:

PHP:
<?php
error_reporting(E_ALL); 

if ($_POST['submit'])  { /* als er op de submit knop is gedrukt… */ 
  echo "tempname 2: " .$_FILES[file][name] ."<br>\n"; 
  if ($_FILES[file][tmp_name] != "none") { /* het bestand mag uiteraard niet leeg zijn */ 
    $fp = @fopen($_FILES[file][tmp_name],"r") or die ('FOUT: in openen bestand'); /* poging tot openen van het bestand */ 
    if ($fp) { /* als het openen is gelukt */ 
      $content = fread($fp,filesize($_FILES[file][tmp_name])); /* eerst de inhoud van t bestand uitlezen */ 
      fclose($fp); /* bestand sluiten */ 
        echo "2 tempname 2: " .$_FILES[file][name] ."<br>\n"; 
        echo "2 temptype 2: " .$_FILES[file][type] ."<br>\n"; 
        echo "2 tempsize 2: " .filesize($_FILES[file][tmp_name]) ."<br>\n"; 
		
      $db = mysql_connect("localhost","***", "***") or die ('FOUT : bij verbinden database');/* database connexie openen */ 
      mysql_select_db("***",$db) or die('FOUT : selecteren database'); /* database selecteren */ 

      $sql = "INSERT INTO images VALUES(0,'" . $_FILES[file][name] . "','" . $_FILES[file][type] . "','" . filesize($_FILES[file][tmp_name]) . "','" . addslashes($content) . "')" or die ('FOUT: bij maken connection'); 
      @mysql_query($sql,$db) or die('FOUT : uitvoeren query mislukt'); /* en query uitvoeren */ 
      mysql_close($db); 

      print "Bestand opgeslagen"; 
    } else { /* als het bestand niet geopend kan worden, dus !$fp */ 
      print "Kan bestand niet openen"; 
    } 
  } else { 
    print "Geen bestand geselecteerd!"; 
  } 
} else { ?> 


<html> 

<head> 
<title>Upload File</title> 
</head> 

<body> 

<form action="upload1.php" method="POST" enctype="multipart/form-data"> 
Bestand: <input type="file" name="file">&nbsp;<input type="submit" name="submit" value="Upload"> 
</form> 

</body> 
<? } ?>
 
Ok, d'r schort behoorlijk wat aan je code, afgezien van de kleine foutjes die jij de hele tijd noemt :)
Probeer dit script eens:
PHP:
$toegestane_extensies = array('jpg','gif','jpeg','png','zip','doc','txt');
  if(isset($_FILES['bestand']) == TRUE)
  {
    if(gettype($_FILES['bestand']) == 'array')
    {
    $extensie = strtolower(end(explode('.',$_FILES['bestand']['name'])));
      if($_FILES['bestand']['size'] > 1048576) // Als 't bestand groter dan 1 MB is
      {
      echo 'Je bestand mag maximaal 1048576 bytes groot zijn';
      }
      elseif(in_array($extensie,$toegestane_extensies) == FALSE)
      {
      echo 'Die bestandsextensie is niet toegestaan';
      }
      else
      {
      $query = "INSERT INTO uploads (uploadid,datum,extensie) VALUES ('','" . time() . "','" . $extensie . "')"; // 
      $result = mysql_query($query) or die(mysql_error());
        if(mysql_affected_rows() == 0)
        {
        echo 'Kon om onbekende redenen de bestandsinformatie niet aan de database toevoegen';
        }
        else
        {
        $uploadid = mysql_insert_id();
          if(copy($_FILES['file']['tmp_name'],'uploads/' . $uploadid . '.' . $extensie) == TRUE)
          {
          echo 'Het bestand is succesvol geupload !';
          }
          else
          {
          echo 'Kon bestand niet kopiëren';
          }
        }
      }
    }
  }
Voor dit script moet je wel ff je database aanpassen en een mapje 'uploads' maken :)

Over je eigen script:
  • Bestanden in je database zetten is écht geen goed plan :)
  • Bij mysql_query() is de 2e parameter overbodig, daar heb je immers mysql_select_db() voor.

Succes :thumb:
 
Laatst bewerkt:
IK heb even een en ander afgekeken, en het werkt nu, met de volgende code:

PHP:
<?php
error_reporting(E_ALL); 

include ('connect.php');

if (isset ($_FILES['file']))  { /* als er op de submit knop is gedrukt… */ 
  echo "tempname 2: " .$_FILES['file']['name'] ."<br>\n"; 
  if ($_FILES['file']['tmp_name'] != "none") { /* het bestand mag uiteraard niet leeg zijn */ 
    $fp = @fopen($_FILES['file']['tmp_name'],"r") or die ('FOUT: in openen bestand'); /* poging tot openen van het bestand */ 
    if ($fp) { /* als het openen is gelukt */ 
      $content = fread($fp,filesize($_FILES['file']['tmp_name'])); /* eerst de inhoud van t bestand uitlezen */ 
      fclose($fp); /* bestand sluiten */ 
        echo "2 tempname 2: " .$_FILES['file']['name'] ."<br>\n"; 
        echo "2 temptype 2: " .$_FILES['file']['type'] ."<br>\n"; 
        echo "2 tempsize 2: " .filesize($_FILES['file']['tmp_name']) ."<br>\n"; 
		
      $sql = "INSERT INTO images VALUES(0,'" . $_FILES['file']['name'] . "','" . $_FILES['file']['type'] . "','" . filesize($_FILES['file']['tmp_name']) . "','" . addslashes($content) . "')" or die ('FOUT: bij maken connection'); 
      @mysql_query($sql) or die('FOUT : uitvoeren query mislukt'); /* en query uitvoeren */ 
      mysql_close(); 

      print "Bestand opgeslagen"; 
    } else { /* als het bestand niet geopend kan worden, dus !$fp */ 
      print "Kan bestand niet openen"; 
    } 
  } else { 
    print "Geen bestand geselecteerd!"; 
  } 
} else { ?> 


<html> 

<head> 
<title>Upload File</title> 
</head> 

<body> 

<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="POST" enctype="multipart/form-data">
Bestand: <input type="file" name="file">&nbsp;<input type="submit" name="submit" value="Upload"> 
</form> 

</body> 
<? } ?>


Weer bedankt!
:thumb: :thumb:
 
Het is inderdaad niet erg handig in de database die afbeeldingen, maar ik heb m'n andere script bijna af (gewoon gegevens in database maar image in map) alleen daar krijg ik een error die ik niet terug kan vinden...

ondertussen kunnen er al wel ander fouten in gekomen zijn door het proberen te debuggen...

PHP:
<? 
error_reporting(E_ALL); 

include ('connect.php'); 

$toegestaan = array('jpg', 'gif', 'png', 'bmp');    //vul in deze array de toegestane extensies in gescheiden door een comma 
$maxfilesize = 2;                    //vul hier de toegestane filesize in MB's in 
$maxwidth = 800;                    //de maximale breedte van het geuploade bestand 
$maxheight = 600;                    //de maximale hoogte van het geuploade bestand 
$directory = "images1/";                //de map waar de upload in moeten komen, inclusief slashes 
$tabelnaam = "uploads";                    //de naam van de tabel waar de upload in moet komen 

?> 



<html> 
<head> 
<title>Upload Script:</title> 
</head> 
<body> 

<?php 
error_reporting(E_ALL); 

//code alleen uitvoeren wanneer er op submit is geklikt: 
if(!empty($_POST["veld"]))
if(isset($_POST['submit'])) {     
    if($_POST['title'] == "") { 
		echo("<script language=\"javascript\">alert('U bent vergeten de title in te vullen');</script>"); }
	
	else{ 
        
	if($_POST['description'] == "") { 
		echo("<script language=\"javascript\">alert('U bent vergeten een description in te vullen');</script>"); }
	
	else{ 
	
	if($_POST['color'] == "") { 
		echo("<script language=\"javascript\">alert('U bent vergeten een color in te vullen');</script>"); }
	
	else{ 
	
	if($_POST['sizes'] == "") { 
		echo("<script language=\"javascript\">alert('U bent vergeten een size in te vullen');</script>"); }
	
	else{ 
	
		if($_POST['price'] == "") { 
		echo("<script language=\"javascript\">alert('U bent vergeten de price in te vullen');</script>"); }
	
	else{ 
            
	if($_FILES['file']['name'] == "") { 
		echo("<script language=\"javascript\">alert('U bent vergeten een file te selecteren');</script>"); }
	
	else{ 
          
  
//extensies controleren: 
$extensie = explode(".", $_FILES['file']['name']); 
$extcount = count($toegestaan); 

for($a=0;$a<$extcount;$a++) {     
  if(strtolower($extensie[1]) == $toegestaan[$a]) { 
      $extok = true; 
      $a = count($toegestaan); 
}else{ 
    $extok = false; 
} 
            } 
         
if($extok == false) { 
    echo("<script language=\"javascript\">alert('Deze extensie is niet geldig. Geldige extensies zijn:\\n' "); 
        for($b=0;$b<$extcount;$b++) { 
            $extup = strtoupper($toegestaan[$b]); 
            if($b == $extcount - 1) { 
              echo("$extup"); 
             }else{ 
              echo("$extup, ");      
                                    } 
                            } 
    echo("');</script>"); 
}else{ 
     
//bestandsgrootte controleren: 
$filesize = $_FILES['file']['size']; 
$filesize2 = ("".ROUND($filesize / 1024, 1)." KB"); 

if($filesize > 1024) { $filesize2 = ("".ROUND($filesize2 / 1024, 1)." MB"); } 
if($filesize > 1073741824) { $filesize2 = ("".ROUND($filesize2 / 1024 / 1024 / 1024, 1)." GB"); } 

$maxfilesize2 = $maxfilesize * 1024 * 1024; 
if($_FILES['file']['size'] > $maxfilesize2) { 
    echo("<script language=\"javascript\">alert('Dit bestand is te groot voor de upload\\nToegstaan: $maxfilesize MB');</script>"); 
}else{ 


//op dubbele files controleren: 
$filenaam = $_FILES['file']['name']; 
if(file_exists("$directory$filenaam")) { 
     echo("<script language=\"javascript\">alert('De bestandnaam ($filenaam) is al in gebruik');</script>"); 
}else{ 


//image size controleren: 
$size = getimagesize($_FILES['file']['tmp_name']); 
$width = $size[0]; 
$height = $size[1]; 
if($width > $maxwidth || $height > $maxheight) { 
    echo("<script language=\"javascript\">alert('Het formaat van dit bestand is niet correct.\\nMag max zijn: $maxwidth x $maxheight');</script>"); 
}else{ 

//Wanneer alles correct is, file uploaden: 
$pad = $directory; 

if(isset($_POST['submit'])) { 
    $query = "INSERT INTO $tabelnaam(title, description, color, sizes, price, datum, filenaam) 
               VALUES('".$_POST['title']."','".$_POST['description']."','".$_POST['color']."','".$_POST['sizes']."','".$_POST['price']."','$pad$filenaam')" or die ('FOUT in uitvoeren query'); 
    $result = mysql_query($query); 
     
     
    copy($file, "$pad".$_FILES['file']['name']."") or die ('FOUT bij uploaden file'); 
      echo("<center><font color=red>File uploaded...</font></center>"); 
} 

                } 
            } 

        } 

    } 
} 

}     }    } 

//Het formulier: 
echo("<center>

<table border=0 style=\"border-style: double; border-color=red\"> 
      <form action=$_SERVER[PHP_SELF] method=POST name=\"uploadform\" enctype=\"multipart/form-data\">
	  	<tr> 
      		<td>Titel:</td>
			<td><Input type=textbox name=title size=25 maxlength=35></td>
		</tr>
		<tr> 
      		<td>Description:</td>
			<td><Input type=textbox name=description size=25 maxlenght=100></td>
		</tr>
		<tr>
			<td>Kleur</td>
			<td><input type=textbox name=color size=25 maxlength=35</td>
		</tr> 
		<tr>
			<td>Maat</td>
			<td><input type=textbox name=sizes size=25 maxlenght=35</td>
		</tr>
		<tr>
			<td>Price</td>
			<td><input type=textbox name=price size=25 maxlength=10</td>
		<tr>
			<td><input type=file name=file size=25></td>
		</tr>
		<tr> 
			<td>&nbsp</td>
			<td><input type=submit name=submit value=\"Upload file\"></td>
		</tr>
				</table>
			</td>
		</tr> 
     </form>
</table>

</center>"); 

?> 
</body> 
</html>
 
Geplaatst door bas007gsm
Het is inderdaad niet erg handig in de database die afbeeldingen [...]
Kun je in eigen woorden uitleggen waarom ? :)
[...] maar ik heb m'n andere script bijna af (gewoon gegevens in database maar image in map) alleen daar krijg ik een error die ik niet terug kan vinden...
Welke error mag dat zijn ?
 
error zit op de laatste regel=
Parse error: parse error, unexpected $ in /home/bas007gsm/domains/nathalzen.nl/public_html/cms/1/cms/upload1.php on line 171

met de bestanden in de database zelf was het onhandig als ik ff een iets groter bestandje wilde "parkeren"

Kleine aanpassing:
PHP:
<? 
error_reporting(E_ALL); 

include ('connect.php'); 

$toegestaan = array('jpg', 'gif', 'png', 'bmp');    //vul in deze array de toegestane extensies in gescheiden door een comma 
$maxfilesize = 2;                    //vul hier de toegestane filesize in MB's in 
$maxwidth = 800;                    //de maximale breedte van het geuploade bestand 
$maxheight = 600;                    //de maximale hoogte van het geuploade bestand 
$directory = "images1/";                //de map waar de upload in moeten komen, inclusief slashes 
$tabelnaam = "uploads";                    //de naam van de tabel waar de upload in moet komen 

?> 



<html> 
<head> 
<title>Upload Script:</title> 
</head> 
<body> 

<?php 
error_reporting(E_ALL); 

//code alleen uitvoeren wanneer er op submit is geklikt: 
if(!empty($_POST)) {     
    if($_POST['title'] == "") { 
		echo("<script language=\"javascript\">alert('U bent vergeten de title in te vullen');</script>"); }
	
	else{ 
        
	if($_POST['description'] == "") { 
		echo("<script language=\"javascript\">alert('U bent vergeten een description in te vullen');</script>"); }
	
	else{ 
	
	if($_POST['color'] == "") { 
		echo("<script language=\"javascript\">alert('U bent vergeten een color in te vullen');</script>"); }
	
	else{ 
	
	if($_POST['sizes'] == "") { 
		echo("<script language=\"javascript\">alert('U bent vergeten een size in te vullen');</script>"); }
	
	else{ 
	
		if($_POST['price'] == "") { 
		echo("<script language=\"javascript\">alert('U bent vergeten de price in te vullen');</script>"); }
	
	else{ 
            
	if($_FILES['file']['name'] == "") { 
		echo("<script language=\"javascript\">alert('U bent vergeten een file te selecteren');</script>"); }
	
	else{ 
          
  
//extensies controleren: 
$extensie = explode(".", $_FILES['file']['name']); 
$extcount = count($toegestaan); 

for($a=0;$a<$extcount;$a++) {     
  if(strtolower($extensie[1]) == $toegestaan[$a]) { 
      $extok = true; 
      $a = count($toegestaan); 
}else{ 
    $extok = false; 
} 
            } 
         
if($extok == false) { 
    echo("<script language=\"javascript\">alert('Deze extensie is niet geldig. Geldige extensies zijn:\\n' "); 
        for($b=0;$b<$extcount;$b++) { 
            $extup = strtoupper($toegestaan[$b]); 
            if($b == $extcount - 1) { 
              echo("$extup"); 
             }else{ 
              echo("$extup, ");      
                                    } 
                            } 
    echo("');</script>"); 
}else{ 
     
//bestandsgrootte controleren: 
$filesize = $_FILES['file']['size']; 
$filesize2 = ("".ROUND($filesize / 1024, 1)." KB"); 

if($filesize > 1024) { $filesize2 = ("".ROUND($filesize2 / 1024, 1)." MB"); } 
if($filesize > 1073741824) { $filesize2 = ("".ROUND($filesize2 / 1024 / 1024 / 1024, 1)." GB"); } 

$maxfilesize2 = $maxfilesize * 1024 * 1024; 
if($_FILES['file']['size'] > $maxfilesize2) { 
    echo("<script language=\"javascript\">alert('Dit bestand is te groot voor de upload\\nToegstaan: $maxfilesize MB');</script>"); 
}else{ 


//op dubbele files controleren: 
$filenaam = $_FILES['file']['name']; 
if(file_exists("$directory$filenaam")) { 
     echo("<script language=\"javascript\">alert('De bestandnaam ($filenaam) is al in gebruik');</script>"); 
}else{ 


//image size controleren: 
$size = getimagesize($_FILES['file']['tmp_name']); 
$width = $size[0]; 
$height = $size[1]; 
if($width > $maxwidth || $height > $maxheight) { 
    echo("<script language=\"javascript\">alert('Het formaat van dit bestand is niet correct.\\nMag max zijn: $maxwidth x $maxheight');</script>"); 
}else{ 

//Wanneer alles correct is, file uploaden: 
$pad = $directory; 

if(isset($_POST['submit'])) { 
    $query = "INSERT INTO $tabelnaam(title, description, color, sizes, price, datum, filenaam) 
               VALUES('".$_POST['title']."','".$_POST['description']."','".$_POST['color']."','".$_POST['sizes']."','".$_POST['price']."','$pad$filenaam')" or die ('FOUT in uitvoeren query'); 
    $result = mysql_query($query); 
     
     
    copy($file, "$pad".$_FILES['file']['name']."") or die ('FOUT bij uploaden file'); 
      echo("<center><font color=red>File uploaded...</font></center>"); 
} 

                } 
            } 

        } 

    } 
} 

}     }    } 
?> 



<table border=0 style="border-style: double; border-color=red"> 
      <form action=$_SERVER[PHP_SELF] method=POST name="uploadform" enctype="multipart/form-data">
	  	<tr> 
      		<td>Titel:</td>
			<td><Input type=textbox name=title size=25 maxlength=35></td>
		</tr>
		<tr> 
      		<td>Description:</td>
			<td><Input type=textbox name=description size=25 maxlenght=100></td>
		</tr>
		<tr>
			<td>Kleur</td>
			<td><input type=textbox name=color size=25 maxlength=35</td>
		</tr> 
		<tr>
			<td>Maat</td>
			<td><input type=textbox name=sizes size=25 maxlenght=35</td>
		</tr>
		<tr>
			<td>Price</td>
			<td><input type=textbox name=price size=25 maxlength=10</td>
		<tr>
			<td><input type=file name=file size=25></td>
		</tr>
		<tr> 
			<td>&nbsp</td>
			<td><input type=submit name=submit value=\"Upload file\"></td>
		</tr>
     </form>
</table>

</body> 
</html>
 
Laatst bewerkt:
hmmm error opgelost! alleen nu krijg ik geen gegevens in de database, maar het bestand wordt wel geupload

PHP:
<?php 
error_reporting(E_ALL); 

include ('connect.php'); 

$toegestaan = array('jpg', 'gif', 'png', 'bmp');    //vul in deze array de toegestane extensies in gescheiden door een comma 
$maxfilesize = 2;                    //vul hier de toegestane filesize in MB's in 
$maxwidth = 800;                    //de maximale breedte van het geuploade bestand 
$maxheight = 600;                    //de maximale hoogte van het geuploade bestand 
$directory = "images1/";                //de map waar de upload in moeten komen, inclusief slashes 
$tabelnaam = "uploads";                    //de naam van de tabel waar de upload in moet komen 

//code alleen uitvoeren wanneer er op submit is geklikt: 
if(!empty($_POST)) {     
    if($_POST['title'] == "") { 
		echo("<script language=\"javascript\">alert('U bent vergeten de title in te vullen');</script>"); }
	
	else{ 
        
	if($_POST['description'] == "") { 
		echo("<script language=\"javascript\">alert('U bent vergeten een description in te vullen');</script>"); }
	
	else{ 
	
	if($_POST['color'] == "") { 
		echo("<script language=\"javascript\">alert('U bent vergeten een color in te vullen');</script>"); }
	
	else{ 
	
	if($_POST['sizes'] == "") { 
		echo("<script language=\"javascript\">alert('U bent vergeten een size in te vullen');</script>"); }
	
	else{ 
	
		if($_POST['price'] == "") { 
		echo("<script language=\"javascript\">alert('U bent vergeten de price in te vullen');</script>"); }
	
	else{ 
            
	if($_FILES['file']['name'] == "") { 
		echo("<script language=\"javascript\">alert('U bent vergeten een file te selecteren');</script>"); }
	
	else{ 
          
  
//extensies controleren: 
$extensie = explode(".", $_FILES['file']['name']); 
$extcount = count($toegestaan); 

for($a=0;$a<$extcount;$a++) {     
  if(strtolower($extensie[1]) == $toegestaan[$a]) { 
      $extok = true; 
      $a = count($toegestaan); 
}else{ 
    $extok = false; 
} 
            } 
         
if($extok == false) { 
    echo("<script language=\"javascript\">alert('Deze extensie is niet geldig. Geldige extensies zijn:\\n' "); 
        for($b=0;$b<$extcount;$b++) { 
            $extup = strtoupper($toegestaan[$b]); 
            if($b == $extcount - 1) { 
              echo("$extup"); 
             }else{ 
              echo("$extup, ");      
                                    } 
                            } 
    echo("');</script>"); 
}else{ 
     
//bestandsgrootte controleren: 
$filesize = $_FILES['file']['size']; 
$filesize2 = ("".ROUND($filesize / 1024, 1)." KB"); 

if($filesize > 1024) { $filesize2 = ("".ROUND($filesize2 / 1024, 1)." MB"); } 
if($filesize > 1073741824) { $filesize2 = ("".ROUND($filesize2 / 1024 / 1024 / 1024, 1)." GB"); } 

$maxfilesize2 = $maxfilesize * 1024 * 1024; 
if($_FILES['file']['size'] > $maxfilesize2) { 
    echo("<script language=\"javascript\">alert('Dit bestand is te groot voor de upload\\nToegstaan: $maxfilesize MB');</script>"); 
}else{ 


//op dubbele files controleren: 
$filenaam = $_FILES['file']['name']; 
if(file_exists("$directory$filenaam")) { 
     echo("<script language=\"javascript\">alert('De bestandnaam ($filenaam) is al in gebruik');</script>"); 
}else{ 


//image size controleren: 
$size = getimagesize($_FILES['file']['tmp_name']); 
$width = $size[0]; 
$height = $size[1]; 
if($width > $maxwidth || $height > $maxheight) { 
    echo("<script language=\"javascript\">alert('Het formaat van dit bestand is niet correct.\\nMag max zijn: $maxwidth x $maxheight');</script>"); 
}else{ 

//Wanneer alles correct is, file uploaden: 
$pad = $directory; 

if(!empty($_POST)) { 
    $query = "INSERT INTO $tabelnaam(title, description, color, sizes, price, datum, filenaam) 
               VALUES('".$_POST['title']."','".$_POST['description']."','".$_POST['color']."','".$_POST['sizes']."','".$_POST['price']."','$pad$filenaam')" or die ('FOUT in uitvoeren query'); 
    $result = mysql_query($query); 
     
     
    copy($file, "$pad".$_FILES['file']['name']."") or die ('FOUT bij uploaden file'); 
      echo("<center><font color=red>File uploaded...</font></center>"); 
} 

                } 
            } 

        } 

    } 
} 

}     }    } 
} } }
?> 



<table border=0 style="border-style: double; border-color=red"> 
      <form action="<?php echo($_SERVER["PHP_SELF"]);?>" method="POST" name="uploadform" enctype="multipart/form-data">
	  	<tr> 
      		<td>Titel:</td>
			<td><Input type=textbox name=title size=25 maxlength=35></td>
		</tr>
		<tr> 
      		<td>Description:</td>
			<td><Input type=textbox name=description size=25 maxlenght=100></td>
		</tr>
		<tr>
			<td>Kleur</td>
			<td><input type=textbox name=color size=25 maxlength=35</td>
		</tr> 
		<tr>
			<td>Maat</td>
			<td><input type=textbox name=sizes size=25 maxlenght=35</td>
		</tr>
		<tr>
			<td>Price</td>
			<td><input type=textbox name=price size=25 maxlength=10</td>
		<tr>
			<td><input type=file name=file size=25></td>
		</tr>
		<tr> 
			<td></td>
			<td><input type=submit name=submit value="Upload file"></td>
		</tr>
     </form>
</table>

</body> 
</html>
 
Verander mysql_query($query); eens in mysql_query($query) or die(mysql_error());. Zie je een error ?
 
Ja gevonden, er stond een kolom in de database die niet goed was, alles nu opgelost!
 
Jeuj :)

Nu vraagje nog op opgelost, dan is iedereen weer blij :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan