Avatar billede nikksen Nybegynder
20. september 2006 - 00:07 Der er 1 kommentar og
1 løsning

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>&nbsp;</p>
</body>
</html>


Jeg vil være dybt taknemmelig hvis der var en som kunne hjælpe mig her. (Er forholdsvis ny i php)
Avatar billede nikksen Nybegynder
20. september 2006 - 18:28 #1
Er der virkelig ingen der har lyst til at hjælpe?
Avatar billede nikksen Nybegynder
20. september 2006 - 21:55 #2
nå ikke.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester