Indbygge copy-thumbnail-to-folder i multi-upload script
Hejsa, da jeg i går 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 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);
}
////////////////////////////
Og her er så den vigtige del af min upload-formula, 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 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>
Jeg vil være dybt taknemmelig hvis der var en som kunne hjælpe mig her. (Er forholdsvis ny i php)
