Kan iemand mij helpen heb een klein script voor het uploaden van files, echter wil ik dat de gebruiker straks zelf een bepaalde map kan kiezen.

Nu wordt het standaard geupload naar de map uploads, maar zou graag zien dat er 2 mappen komen 1 voor het uploaden van afbeeldingen en 1 voor documenten en dat de gebruiker deze map kan kiezen iemand enig idee hoe ik dit moet doen?

<?php

/*Toegestane mime-types*/
$toegestaan = array('image/png', 'image/gif', 'image/jpeg');
/*Maximale grootte*/
$max = 153600000000000;


if(isset($_POST['submit'])){
if(is_uploaded_file($_FILES['file']['tmp_name'])){
$return = '';//moet leegblijven
if($_FILES['file']['size'] > $max){
$return = 'Het bestand is te groot ('.($_FILES['file']['size']/1024).'b)<br />';//Bestand is groter dan 150kb
}
if(!in_array($_FILES['file']['type'], $toegestaan)){
$return .= 'Het bestand heeft een foute mime-type ('.$_FILES['file']['type'].')';
//Het mime-type van het bestand werd niet in de array $toegestaan gevonden
}

if($return == ''){//geen fouten gevonden, dus upload
/*In dit script kies ik om een random naam te geven zodat er geen dubbele afbeeldingen in de db staan*/
$ext = strrchr($_FILES['file']['name'], ".");
$nieuwenaam = time().$ext;
move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/'.$nieuwenaam);
$return = 'Het bestand werd geüpload ('.$nieuwenaam.')';
}
}else{
$return = 'Geen bestand geselecteerd';
}
print $return;
}else{
print '
<form method="post" action="" enctype="multipart/form-data">
<input type="file" name="file" /><br />
<input type="submit" name="submit" value="Upload" />
</form>
';
}

?>
Maak in je formulier een checkbox of een dropdown waaruit gekozen kan worden.
Op basis van die input ken je dan de map toe.
Je kan ook naar de ext kijken. Een .gif, .jpg enzovoort zijn plaatjes. Een .pdf, .txt enzovoort zijn documenten.
ik snap dat de ext nog niet klopt maar dat was niet mijn vraag

[size=xsmall]Toevoeging op 22/03/2012 19:30:56:[/size]

Heb het formulier aangepast hoe zorg ik er nu voor dat het bestand in de goede map komt?

<?php

/*Toegestane mime-types*/
$toegestaan = array('image/png', 'image/gif', 'image/jpeg');
/*Maximale grootte*/
$max = 153600000000000;


if(isset($_POST['submit'])){
if(is_uploaded_file($_FILES['file']['tmp_name'])){
$return = '';//moet leegblijven
if($_FILES['file']['size'] > $max){
$return = 'Het bestand is te groot ('.($_FILES['file']['size']/1024).'b)<br />';//Bestand is groter dan 150kb
}
if(!in_array($_FILES['file']['type'], $toegestaan)){
$return .= 'Het bestand heeft een foute mime-type ('.$_FILES['file']['type'].')';
//Het mime-type van het bestand werd niet in de array $toegestaan gevonden
}

if($return == ''){//geen fouten gevonden, dus upload
/*In dit script kies ik om een random naam te geven zodat er geen dubbele afbeeldingen in de db staan*/
$ext = strrchr($_FILES['file']['name'], ".");
$nieuwenaam = time().$ext;
move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/'.$nieuwenaam);
$return = 'Het bestand werd geüpload ('.$nieuwenaam.')';
}
}else{
$return = 'Geen bestand geselecteerd';
}
print $return;
}else{
print '
<FORM METHOD="post" ACTION="upload.php"enctype="multipart/form-data">
<input type="file" name="file" /><br />
Locatie:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <select NAME="speltak" TYPE="text" VALUE="">
<option selected="" value="Groepsraad">Groepsraad</option>
<option value="TLO">TLO</option>
<option value="Evaluaties">Evaluaties</option>
</select><br>

<input name="submit" type="submit" value="Upload">

</FORM>

';
}

?>
Je opbouw van je keuzevelden ziet er iets anders uit dan ik zou verwachten, maar als het bij jou werkt.....

Nu nog een if-lus of case-switch inbouwen als het formulier verzonden is.
Controleren op verzenden doe je beter niet met
if(isset($_POST['submit'])) maar met if($_SERVER['REQUEST_METHOD'] == "POST")

Bedankt voor je reactie,
heb er weinig verstand van hoe maak ik dan een if-lus of case-switch,

hoe zou jij de keuze velden opbouwen?
ErikJan Westendorp op 22/03/2012 19:56:05

heb er weinig verstand van hoe maak ik dan een if-lus of case-switch,


Lees eens een tutorial of kijk op php.net.
- SanThe - op 22/03/2012 19:57:46

[quote="ErikJan Westendorp op 22/03/2012 19:56:05"]
heb er weinig verstand van hoe maak ik dan een if-lus of case-switch,


Lees eens een tutorial of kijk op php.net.
[/quote]
en als ik er daar niet uitkom kan ik het hier toch vragen of niet?

Maar dit is zo ontzettend basiskennis.

<?php
if(... == ...)
{
// doe iets
}
else
{
// doe iets anders
}

switch(...)
{
case 1: // doe iets
break;
case 'jantje': // doe iets anders
break;
default: // doe iets als er niks is gevonden
}
?>

Reageren