Thumbnail-funktion ind i et multi-upload script
Hejsa, da jeg forleden fik et multi-upload script op at køre kunne jeg godt tænke mig at få indbygget en funktion til at kopiere det originale billede til en anden mappe som en thumbnail + thumbnail-filnavnet til en database. Her er mit script:if(!$regsubmit) {
$datoen = date("d-m-Y");
$ugenr = date("W");
for ( $i = 0; $i < 5; $i++ ) {
eval("\$site_body = \"".template("nikk_admin_galleri")."\";");
}
} else {
$targetDir = $_SERVER['DOCUMENT_ROOT']."/nikk/images/galleripics/";
$besked = "";
if ( !empty( $_FILES['upfile'] ) ) {
$files = $_FILES['upfile'];
$n = count( $files );
for ( $i = 0; $i < $n; $i++ ) {
if ( is_uploaded_file( $files['tmp_name'][$i] ) ) {
$billede = $files['name'][$i];
$extension = substr( $files['name'][$i], -3 );
list( $mspart, $secpart ) = explode( ' ', microtime() );
$filnavn = date("YmdHis").$mspart.".".$extension;
if ( ($extension == "jpg" || $extension == "png" || $extension == "gif") && move_uploaded_file( $files['tmp_name'][$i], $targetDir . $filnavn ) ) {
$besked .= "$billedeurl er blevet uploadet med succes!<br>";
$xbillededato = $_REQUEST['billededato'][$i];
$xbilledested = checkInput($billedested[$i], '', '', "javascript", false);
$xbillededato = checkInput($billededato[$i], '', '', "javascript", false);
$xbilledetitel = checkInput($billedetitel[$i], '', '', "javascript", false);
$xbilledebeskrivelse = checkInput($billedebeskrivelse[$i], '', 'yes', "javascript", false);
$xbilledeuge = checkInput($billedeuge[$i], '', '', "javascript", false);
// Indsættes i database til retning af billede
$db->query("INSERT INTO nikksite_billeder VALUES ('', '$xbilledested', '$xbillededato', '$filnavn', '$xbilledetitel', '$xbilledebeskrivelse', '$xbilledeuge')");
$site_body = "<font class=txt><p align=center><b>Billederne er tilføjet!</b></p></font></font>";
} else {
$filnavn = "";
$billede = "";
}
}
}
}
redirect('index.php?action=admin&sub=galleri', 4, X_REDIRECT_JS);
}
//////////////////////////////
Jeg var så heldig, at jeg for meget kort tid siden fik lov at "låne" et andet script der har denne funktion og som jeg synes ser ganske fornuftigt ud. Det er her:
//////////////////////////////
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
<link href="../rouge.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
body {
background-color: #891d27;
}
-->
</style></head>
<body>
<?PHP
function skaler_jpg ($img,$w,$h) {
$thumbnail = imagecreatetruecolor ($w, $h);
$billede = imagecreatefromjpeg ($img);
$billedestr = getimagesize ($img);
imagecopyresized ($thumbnail, $billede, 0, 0, 0, 0, $w, $h, $billedestr[0], $billedestr[1]);
imagejpeg($thumbnail, $img);
}
if (isset($_POST["submit"])){
$mappe="../../pictures/";
$mappe2="../../pictures/thumb/";
for($key=0; $key<count($_FILES[billedefil][name]); $key++){
$steen= getimagesize($_FILES[billedefil][tmp_name][$key]);
if($steen[2]==2){
if ($steen[0]> $steen[1] ){
echo "billedet er bredt!";
$w=160;
$h=120;
} elseif($steen[0]< $steen[1] ) {
$w=120;
$h=160;
echo "billedet er højt!";
}elseif($steen[0]==$steen[1] ){
$w=120;
$h=120;
echo "Billedet er kvardratisk";
}
$billedenavn = time() . $_FILES[billedefil][name][$key];
$thumbname = "thumb_" . $billedenavn;
copy($_FILES["billedefil"]["tmp_name"][$key], $mappe.$billedenavn);
copy($_FILES["billedefil"]["tmp_name"][$key], $mappe2.$thumbname);
$fil_at_skalere = $mappe.$mappe2.$thumbname;
skaler_jpg($fil_at_skalere, $w,$h);
//indsæt i databasen
$navn=$_POST['name'][$key];
echo $navn;
include('../../connections/connection.php');
mysql_query("INSERT INTO gallery (name, thumb,stithumb,billede,stibillede)
VALUES('$navn','$thumbname','$mappe2.$thumbname','$billedenavn','$mappe.$billedenavn')")or die(mysql_error());
}else{
//echo "FY HA slemme dreng!!";
}
}
?>
<script>
//window.location="<?php echo $PHP_SELF; ?>";
</script>
<?php
}else {
}
?>
<form action="<?php echo $PHP_SELF; ?>" method="post" enctype="multipart/form-data" name="upload_form">
<span class="overskrift"><strong>Select the Picture/Pictures you want to uploade:</strong></span><br><br>
<span class="tekst">Navn:</span>
<input name="name[]" type="text" id="name3">
<input type= "file" name="billedefil[]">
<br>
<span class="tekst">Navn:</span>
<input name="name[]" type="text" id="name1">
<input type= "file" name="billedefil[]"><br>
<span class="tekst">Navn:</span>
<input name="name[]" type="text" id="name2">
<input type= "file" name="billedefil[]"><br><br>
<input type="submit" name="submit" value="Uploade">
</form>
<p> </p>
</body>
</html>
////////////////////////////
Og her er så den vigtige del af min upload-formular, som ligger i en template:
///////////////////////////
<tr>
<td bgcolor="$altbg2" class="tablerow" align="center"><input type="text" name="billededato[]" value="$datoen" size="10" /></td>
<td bgcolor="$altbg2" class="tablerow" align="center"><select size="1" name="billedested[]">
<option value="valdisere0607">Val d'Isere 06/07</option>
<option value="alpedhuez0405">Alpe d'Huez 04/05</option>
</select></td>
<td bgcolor="$altbg2" class="tablerow" align="center">
<input name="upfile[]" type="file" size="20" style="width: 200px"><br>
</td>
<td bgcolor="$altbg2" class="tablerow" align="center"><input type="text" name="billedetitel[]" size="15" /></td>
<td bgcolor="$altbg2" class="tablerow" align="center"><textarea rows="2" name="billedebeskrivelse[]" cols="20"></textarea></td>
<td bgcolor="$altbg2" class="tablerow" align="center"><input type="text" name="billedeuge[]" value="$ugenr" size="1" /></td>
</tr>
Jeg kan ikke gennemskue hvordan dette gøres i et multi-upload script. Hvis der er nogen der kan gøre det for mig ville jeg være glad hvis der samtidigt kunne knyttes nogle kommentarer til, så jeg også kan lære af det.
Tak!