Hoi,
Ik heb een script gevonden om bestanden te uploaden. Maar ik wil dat gebruikers alleen mp3 bestanden mogen uploaden. Alleen heb ik niet zoveel verstand van php. En weet ik niet hoe ik dit helemaal moet aanpakken.
Het script komt hiervandaan:
http://www.energyscripts.com/Products/product2.html
^ Is niet het volledige upload programma. ^
Dit script controleert dus niet op extensie.
Het script hieronder doet dit wel. Nu wou ik dus dat gedeelte van het onderstaande script dat op extensie controleert in het bovenstaande script gebruiken.
bron: http://www.gratizwebtoolz.nl/script.php?id=29
Het gaat dus om dit stukje:
Is dit mogelijk??
Sorry voor de lange post
Gr,
Tom
Ik heb een script gevonden om bestanden te uploaden. Maar ik wil dat gebruikers alleen mp3 bestanden mogen uploaden. Alleen heb ik niet zoveel verstand van php. En weet ik niet hoe ik dit helemaal moet aanpakken.
Het script komt hiervandaan:
http://www.energyscripts.com/Products/product2.html
PHP:
<?
include("config.php");
function path_options()
{
global $upload_dirs;
$option = "";
foreach ($upload_dirs as $path => $pinfo)
{
$option .= '<option value="'.$path.'">'.$pinfo["name"].'</option>';
}
return $option;
}
function check_vals()
{
global $upload_dirs, $err;
if (!ini_get("file_uploads")) { $err .= "HTTP file uploading is blocked in php configuration file (php.ini). Please, contact to server administrator."; return 0; }
$pos = strpos(ini_get("disable_functions"), "move_uploaded_file");
if ($pos !== false) { $err .= "PHP function move_uploaded_file is blocked in php configuration file (php.ini). Please, contact to server administrator."; return 0; }
if (!isset($_POST["path"]) || (strlen($_POST["path"]) == 0)) { $err .= "Please fill out path"; return 0; }
if (!isset($upload_dirs[$_POST["path"]])) { $err .= "Incorrect path"; return 0; }
if (!isset($_POST["pwd"]) || (strlen($_POST["pwd"]) == 0)) { $err .= "Please fill out password"; return 0; }
elseif ($_POST["pwd"] != $upload_dirs[$_POST["path"]]["password"]) { $err .= "The upload password is incorrect"; return 0; }
if (!isset($_FILES["userfile"])) { $err .= "Empty file"; return 0; }
elseif (!is_uploaded_file($_FILES['userfile']['tmp_name'])) { $err .= "Empty file"; return 0; }
return 1;
}
$err = ""; $status = 0;
if (isset($_POST["upload"])) {
if (check_vals()) {
if (filesize($_FILES["userfile"]["tmp_name"]) > $max_file_size) $err .= "Ons limiet is: $max_file_size bytes";
else {
if (move_uploaded_file($_FILES["userfile"]["tmp_name"], $upload_dirs[$_POST["path"]]["dir"].$_FILES["userfile"]["name"])) {
$status = 1;
}
else $err .= "Er zijn wat problemen!";
}
}
}
if (!$status) {
if (strlen($err) > 0) echo "<h4>$err</h4>";
}
else {
echo "<h4>"".$_FILES["userfile"]["name"]."" is goed aangekomen ;)</h4>";
}
?>
<p class="cnt_welcome"> </p>
<p class="cnt"> </p>
<p class="cnt"> </p>
<br />
<form enctype="multipart/form-data" action="index.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="<?=$max_file_size?>" />
<table class="main_table" align="center">
<tr>
<td colspan="2" class="head_line"><div align="center">
<p class="stijl1 stijl2">Upload hier uw muziek..</p>
</div></td>
</tr>
<tr>
<td width="39"><div align="right">Genre:</div></td>
<td width="341"><select name="path"><?=path_options()?></select></td>
</tr>
<tr>
<td> </td>
<td><input name="pwd" type="hidden" style="width: 217px;" value="servertom" /></td>
</tr>
<tr>
<td><div align="right">Lied:</div></td>
<td><input type="file" name="userfile" style="width: 222px;" /></td>
</tr>
<tr>
<td colspan="2" align="right"><div align="center">
<p>
<input type="submit" name="upload" value="Upload" class="button" />
</p>
</div></td>
</tr>
</table>
<p align="center"><span class="cnt">Maximale grootte:
<?=$max_file_size/1024?>
Kb.
^ Is niet het volledige upload programma. ^
Dit script controleert dus niet op extensie.
Het script hieronder doet dit wel. Nu wou ik dus dat gedeelte van het onderstaande script dat op extensie controleert in het bovenstaande script gebruiken.
PHP:
<?
//verander de onderstaande gegevens
$locatie="images/"; //of een andere map, vergeet niet de w-rechten
$toegestaan = "jpg, gif, png"; // extensies die toegestaan zijn
$max_size = 15000; //maximale grootte van het bestand in bytes
//stop met veranderen
set_time_limit(0);
if(isset($_POST['upload']))
{
if(is_uploaded_file($_FILES['bestand']['tmp_name']))
{
$extensie_bestand = pathinfo($_FILES['bestand']['name']);
$extensie_bestand = $extensie_bestand[extension];
$extensies_toegestaan = explode(", ", $toegestaan);
for($i = 0; $i < count($extensies_toegestaan); $i++)
{
if($extensies_toegestaan[$i] == "$extensie_bestand")
{
$ok = 1;
}
}
if($ok == 1)
{
if($_FILES['bestand']['size']>$max_size)
{
echo "Het bestand is te groot, de maximale grootte is: <b>$max_size</b>";
exit;
}
if(!move_uploaded_file($_FILES['bestand']['tmp_name'],
$locatie.$_FILES['bestand']['name']))
{
echo "het bestand kan niet worden verplaatst";
exit;
}
echo "Het bestand ".$_FILES['bestand']['name']." is geupload<br>
<a href='".$locatie."".$_FILES['bestand']['name']."' target='_blank'>Klik hier om het te bekijken</a>";
}
else
{
echo "Verkeerde extentie, de toegestane extensies zijn: <b>$toegestaan</b>";
}
}
else
{
echo "Het uploaden is mislukt";
}
}
?>
<br><br>
<form method="post" action="<?=$_SERVER['PHP_SELF']?>" enctype="multipart/form-data">
<input type="file" name="bestand"><br>
<input type="submit" name="upload" value="uploaden">
</form>
bron: http://www.gratizwebtoolz.nl/script.php?id=29
Het gaat dus om dit stukje:
PHP:
if(is_uploaded_file($_FILES['bestand']['tmp_name']))
{
$extensie_bestand = pathinfo($_FILES['bestand']['name']);
$extensie_bestand = $extensie_bestand[extension];
$extensies_toegestaan = explode(", ", $toegestaan);
for($i = 0; $i < count($extensies_toegestaan); $i++)
{
if($extensies_toegestaan[$i] == "$extensie_bestand")
{
$ok = 1;
}
Is dit mogelijk??
Sorry voor de lange post

Gr,
Tom
