Scripts

Multiple image uploader

Met dit script kun je meerdere afbeeldingen uploaden. Er gebeurd niks extra's, er wordt alleen gekeken of het bestand jpg is (daar is dit script eigenlijk voor bedoeld, op regel 106 kun je zelf extensie's toevoegen) Alles staat gewoon in een while loop, dus resizes toevoegen e.d. moet eigenlijk geen enkel probleem zijn. Dit script werk ideaal samen met het fotoalbum v2 van Arjan, aangezien ik dit script hier ook voor geschreven heb.

multiple-image-uploader
[code]
<?php 
error_reporting(E_ALL);
session_start();

$dir = "fotoalbum/";  // map voor images 
$maxsize = 100000000; // maximum groote images 
$num = 10; //aantal afbeeldingen tegelijk
$wachtwoord = 'upload'; //wachtwoord om het script te kunnen gebruiken

if($_SERVER['REQUEST_METHOD'] == 'POST') //als er gepost is
{
	if(isset($_POST['login'])) //als ?login bestaat
	{
		if($_POST['wachtwoord'] == $wachtwoord) //als ?login het wachtwoord bevat
		{
			header('Refresh: 2; URL='.$_SERVER['PHP_SELF']); //een header naar deze pagina
			$_SESSION['ingelogd'] = 'OkI'; //sessie zetten dat er ingelogd is
			$melding = 'Ingelogd, en ogenblik geduld...'; //en even echooen
		}
		else //als ?login niet het wachtwoord bevat
		{
			header('Refresh: 2; URL='.$_SERVER['PHP_SELF']); //header refresh naar deze pagina
			$melding = 'Niet ingelogd, en ogenblik geduld...'; //en even echooen dat er niet is ingelogd
		}
	}
}
if(isset($_GET['uitloggen'])) //
{
	header('Refresh: 1; URL=uploader.php');
	unset($_SESSION['ingelogd']);
	$melding = 'Uitgelogd...';
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Uploaden</title>

<script language="javascript">
function createmap(id)
{
    if(document.getElementById("weergeefcreate"+id).style.display=='none')
    {
        document.getElementById("weergeefcreate"+id).style.display = '';
        document.getElementById("verbergcreate"+id).style.display = 'none';
        document.getElementById("createetext"+id).style.display = 'none';
    }
    else
    {
        document.getElementById("weergeefcreate"+id).style.display = 'none';
        document.getElementById("verbergcreate"+id).style.display = '';
        document.getElementById("createetext"+id).style.display = '';
    }
}
</script>
</head>

<body>
	<?php
	if(isset($melding)) //als $melding bestaat
	{
		exit($melding); //stop het script met de melding
	}
	
	$i = 0; //set $i op 0
	
	if($_SERVER['REQUEST_METHOD'] == "POST") //als er gesubmit is
	{
		if(isset($_POST['creatdir'])) //als er een nieuwe map aangemaakt moet worden
		{
			if(!empty($_POST['mapname'])) //en de map naaam is niet leeg
			{
				if(!is_dir($dir.$_POST['mapname'])) //en als de map nog niet bestaat
				{
					mkdir($dir.$_POST['mapname'], 0755); //maak de map dan aan
					echo 'de map '.$_POST['mapname'].' is aangemaakt<br><br>'; //en echo dat de map is aangemaakt
				}
				else //als de map al bestaat
				{
					echo 'map bestaat al<br><br>'; //echo dat de map al bestaat
				}
			}
			else //als de mapnaam leeg is
			{
				echo '<b>de opgegeven bestandsnaam is leeg</b><br><br>'; //echo dat de mapnaam leeg is
			}
			
			unset($_POST); //unset de post variabele
		}
		else //als er geen nieuwe map aangemaakt moet worden
		{
			if(!is_dir($dir)) //als de opgegeven map niet bestaat
			{
				mkdir ($dir, 0700); //maak de map aan
			}
			
			$j = 1; //set $j op 1
			
			while($j <= $num) //als $j kleiner of gelijk aan het nummer van de uploads is
			{
				if(!empty($_FILES['bestand'.$j]['name'])) //als het bestand niet leeg is
				{
					$pathinfo = pathinfo($_FILES['bestand'.$j]['name']); //maak een pathinfo 
					$ext =  $pathinfo["extension"]; //en geef $ext de extensie mee
			
					if($ext != 'jpg') //als de extensie niet jpg is
					{
						$error = 'Bestand is geen jpg'; //echo dat
					}
					elseif(file_exists($dir.$_POST['map'].'/'.$_FILES['bestand'.$j]['name'])) //als het bestand al bestaat
					{
						$error = 'Bestand '.$j.' bestaat al'; //echo dat
					}
					elseif($_FILES['bestand'.$j]['size'] > $maxsize) //als het bestand groter is dan de opgegeven grootte
					{ 
						$error = 'Bestand is te groot'; //dan geven dat mee aan de echo ;-)
					}
					else //als al het bovenstaande niet zo is :-p
					{
						$error = NULL; //set $error dan op 0
					}
				
					if(!empty($error)) //als error niet leeg is
					{
						echo '<b>Er is een fout op getreden bij bestand '.$j.':</b><br>'.$error.'<br /><br />';  //echo de error
					}
					else //als de error wel leeg is
					{
						if(move_uploaded_file($_FILES['bestand'.$j]['tmp_name'], $dir.$_POST['map'].'/'.$_FILES['bestand'.$j]['name'])) //verplaats het bestand
						{
							echo 'Bestand '.$j.' is succesvol geupload:<br> 
							<br>
							<img src="'.$dir.$_POST['map'].'/'.$_FILES['bestand'.$j]['name'].'" alt="'.$_FILES['bestand'.$j]['name'].'" width="200px"><br>
							<br>'; //en echo dat alles is gelukt
						}
						else //als het bestand niet verplaatst kon worden
						{

							echo 'Error tijden uploaden van bestand '.$j; //echo dat
						}
					}
				}
				else //als het bestand wel leeg is
				{
					echo '<b>Bestand '.$j.' was leeg</b><br /><br />'; //echo dat het bestand leeg is
				}
				
				$j++;	//verhoog $j met 1	
			} //einde while
		} 
	}
	
	if(!isset($_SESSION['ingelogd'])) //als de sessie ingelogd niet bestaat
	{ //geef het inlog form
	?>
		<form method="post" action="#">
			Wachtwoord: <input type="password" name="wachtwoord" /><br />
			<br />
			<input type="submit" name="login" value="Log in!" />
		</form>
	<?php
	}
	else //als de sessie ingelogd wel bestaat
	{ //echo het upload form
		?>
		
		<form action="#" method="post" enctype="multipart/form-data" name="form" id="form">
			Selecteer een doelmap:
			<select name="map" style="z-index: 1;">
				<?php
				$handle = opendir($dir);
					  
				while (($file = readdir($handle)) != FALSE)
				{
					if (($file != ".") && ($file != "..") && (is_dir($file)))
					{
						echo '<option value="'.$file.'">'.$file.'</option>';
					}
				}
				?>
			</select>
			<br />
			<div id="weergeefcreate1" onclick="createmap(1)" style="cursor:pointer; float: left;">
				<i>Of klik hier en maak een nieuwe map aan</i>
			</div>
					  
			<div id="createetext1" style="display:none; position:absolute; width: 350px; background-color:#999999; z-index: 3;">
				<h4 align="center">Maak een nieuwe map aan</h4>
				
				<form method="post" action="#">
					Nieuwe map naam: <input type="text" name="mapname" /><br />
					<br />
					<input type="submit" name="creatdir" value="Maak map aan" />
					
					<div id="verbergcreate1" style="display:none;">
						<input name="createe_text" type="button" value="cancel" onclick="createmap(1)" />
					</div>
				</form>
			</div>
			<br />
			<br />
			
			<?php  
			$i = 1;
			
			while($i <= $num)
			{
				echo 'Foto '.$i.' <input name="bestand'.$i.'" type="file" id="bestand"><br />';
				$i++;
			}
			?>
			<br />
			<input name="uploaden" type="submit" id="uploaden" value="Uploaden">
		</form>
		<br />
		<br />
		<a href="?uitloggen=ja">uitloggen</a>
	<?php
	}
	?>
</body>
</html>
[/code]

Reacties

0
Nog geen reacties.