Beste phphulpers,

het lukt nog steeds niet en ben dus nog steeds op zoek naar het volgende:
Ik wil een upload script, waarbij je bijv 5 of 10 bestanden tegelijk kan uploaden. Deze moeten gelijk worde geresizet en worden opgeslagen in de map, dan moet er een thumb van worden gemaakt en ook worden opgeslagen in /thumbs. Ik heb een script waarbij ik 1 bestand kan uploaden, dan volgende klikken, resizet die, volgende klikken, heb je een thumbnail. Maar het gaat om een fotoalbum en om dan zo 1 voor 1 een foto erin te zetten is niet erg gebruiksvriendelijk.
Dus ik wil gewoon 5/10 foto's tegelijk uploaden en dan de melding "succesvol geupload" en dan is de foto al geresizt,opgeslagen,thumb gemaakt,opgeslagen.
Zou iemand mij willen/kunnen helpen of heeft misschien zoiets dergelijks liggen?

Bvd!
Bestuur dit script maar eens, ik denk dat je er wel iets aan hebt:

<?php
function handle_upload () {
$n = count ($_FILES['userfile']['name']);
/*****
* name, type, tmp_name, error, size
*****/
$msg = null;
for ($i = 0; $i < $n; $i++) {
if ($_FILES['userfile']['error'][$i] != 4) {
if (!eregi ('.jpg', $_FILES['userfile']['name'][$i])) {
$msg .= '<p>' . $_FILES['userfile']['name'][$i] . ' is geen JPG</p>';
}
else {
if ($_FILES['userfile']['size'][$i] > (400 * 1024)) {
$msg .= '<p>' . $_FILES['userfile']['name'][$i] . ' is groter dan 400 KB</p>';
}
else {
$msg .= '<p>' . $_FILES['userfile']['name'][$i] . ' is toegestaan</p>';
$msg .= resize_and_move ($_FILES['userfile']['tmp_name'][$i]);
}
}
}
}
return $msg;
}

function resize_and_move ($tmp) {
$root = $_SERVER['DOCUMENT_ROOT'];
$dir = '/jouwdir/';
$path = $root.$dir;
# die server staat zeker in Amerika, want ik moet er 7 uur bij optellen
$filename = strftime ('%Y%m%d%H%M%S', time () + (7*3600)) . '.jpg';
if (move_uploaded_file ($tmp, $path . $filename)) {
chmod ($path . $filename, 0644);

# de thumbs zijn 100 pixels hoog
# dus eerst de breedte uitrekenen
$img = $path . $filename;
$dimensions = getimagesize ($img);
$width = $dimensions[0];
$height = $dimensions[1];
$thumb_height = 100;
$ratio = $thumb_height / $height;
$thumb_width = intval ($ratio * $width);
# nu het echte resizen
$src = imagecreatefromjpeg ($img);
$dst = imagecreatetruecolor ($thumb_width, $thumb_height);
imagecopyresampled ($dst, $src, 0, 0, 0, 0, $thumb_width, $thumb_height, $width, $height);
$name_small = str_replace ('.jpg', '_resize.jpg', $img);
imagejpeg ($dst, $name_small, 85);
imagedestroy ($dst);

$msg = '<p>Geupload: ' . $filename . '</p>';
setcookie('bachhhupload', $naam, time() + (3600 * 24), '/', '.bachhh.nl');
return $msg;
}
else {
return '<p>Fout bij het uploaden van ' . $filename . '</p>';
}
}
?>

En zo ziet je HTML er uit:


	<form method="post" enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>">
		<p>
			<label for="foto1">foto 1:</label>
			<input id="foto1" name="userfile[]" type="file" size="50">
		</p>
		<p>
			<label for="foto2">foto 2:</label>
			<input id="foto2" name="userfile[]" type="file" size="50">
		</p>
		<p>
			<label for="foto3">foto 3:</label>
			<input id="foto3" name="userfile[]" type="file" size="50">
		</p>
		<p>
			<label for="foto4">foto 4:</label>
			<input id="foto4" name="userfile[]" type="file" size="50">
		</p>
		<p>
			<label for="foto5">foto 5:</label>
			<input id="foto5" name="userfile[]" type="file" size="50">
		</p>
		
		<p>
			<label for="action">klik op </label>
			<input id="action" name="action" type="submit" value="upload">
		</p>
	</form>

Bedankt! Dat script maakt alleen een resize? Ik zal hem morgen even proberen! Voel me niet lekker dus ik ga off. Trusten!
Als ik hier gewoon 1 pagina van maak, dus php boven, en het html gedeelte eronder, en ik klik op "upload", gebeurt er niks?
Omdat je die nog even moet verwerken
Oke, zou je me even een schopje willen helpen? Ik moet die function dus aanroepen ofzo?
Ja
Waar blijft het schopje :P Sorry ik weet ff niet hoe ik de function moet aanroepen :(

Reageren