Avatar billede uthsen Nybegynder
30. april 2009 - 23:35 Der er 3 kommentarer og
1 løsning

Uploadede billedfiler fra brugerens computer skal gerne omdøbes til Billed01....

I denne kode vil jeg gerne om output i "billeder" mappen bliver
henholdsvis Billed01.jpg, Billed02...... og Billed02_small.jpg.....,Billed01_small.jpg,

-uanset hvad billedfilen hedder på brugerens computer før upload.
Nogen der har en løsning ? :O)



Filen "galleriuploadny4.php" med kode:
<?php
//SETTINGS
$uploadDir = 'billeder/'; //Bibliotek, hvor filer uploades til - husk chmod 777
$allowedFileTypes = array('jpg','jpe','jpeg'); //Hvilke filer vil vi acceptere bliver uploadet?
//THUMBS SETTINGS
$thumbDir = 'billeder/'; //Bibliotek, hvor thumbs gemmes - husk chmod 777
$thumbPostfix = '_small'; //Hvad skal tilføjes til originalt filnavn?
$thumbHeight = 200; //Thumb højde
$thumbWidth = 200; //Thumb bredde

//Funktioner som bruges:
function getExtension($filename){
    return strtolower( pathinfo( $filename, PATHINFO_EXTENSION ) );
}

function resize( $filename, $thumbDir, $postfix, $maxw, $maxh  ){
    $extension = getExtension($filename);
    switch($extension){
        case 'jpg':
        case 'jpeg':
        case 'jpe':
            $srcim = imagecreatefromjpeg( $filename );
            break;
        default:
            return false;
    }
    $ow = imagesx( $srcim );
    $oh = imagesy( $srcim );
    $wscale = $maxw / $ow;
    $hscale = $maxh / $oh;
    $scale = min( $hscale, $wscale );
    $nw = round( $ow * $scale, 0 );
    $nh = round( $oh * $scale, 0 );
    $dstim = imagecreatetruecolor( $nw, $nh );
    imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh );
    switch($extension){
        case 'jpg':
        case 'jpeg':
        case 'jpe':
            $newfilename = $thumbDir . basename($filename, '.'.$extension) . $postfix . '.' . $extension;
            echo 'NewFile : ' . $newfilename . '<br />';
            imagejpeg( $dstim, $newfilename, $quality );
            break;
        default:
            return false;
    }
    imagedestroy( $dstim );
    imagedestroy( $srcim );
    return file_exists($newfilename);
}
//Er der trykket på Upload file knappen?
if(isset($_POST['myUpload'])){
    //Har vi en fil?
    if(is_uploaded_file($_FILES['myFile']['tmp_name'])){
        //Filendelse
        $extension = getExtension($_FILES['myFile']['name']);
   
        //Er filen en af de filer vi gerne vil have?
        if(in_array($extension,$allowedFileTypes)){
       
            //Vi flytter filen fra tmp til vores UPLOADDIR
            if(move_uploaded_file($_FILES['myFile']['tmp_name'],$uploadDir . basename($_FILES['myFile']['name']))){
                if(resize($uploadDir . basename($_FILES['myFile']['name']), $thumbDir, $thumbPostfix , $thumbWidth, $thumbHeight)){
                    echo '<h5 style="color:green;">Filen ('.basename($_FILES['myFile']['name']).') er uploaded og resized med succes</h5>';
                }else{
                    echo '<h5 style="color:red;">Filen ('.basename($_FILES['myFile']['name']).')er uploaded med succes, men resize fejlede</h5>';
                }
            }else{
                echo '<h5 style="color:red;">Error - det var ikke muligt at uploade filen: '.basename($_FILES['myFile']['name']).'</h5>';
            }
        }else{
            echo '<h5 style="color:red;">Forkert filtype, tilladte filtype er: ('.implode(',',$allowedFileTypes).')</h5>';
        }
    }else{
        echo '<h5 style="color:red;">Ingen fil er valgt<h5>';
    }
}

//Vores form
echo '<form action="galleriuploadny4.php" method="post" enctype="multipart/form-data">';
echo 'File ('.implode(',',$allowedFileTypes).'): <input type="file" name="myFile"><br />';
echo '<input type="submit" name="myUpload" value="Upload file">';
echo '</form>';

/* Her findes et tilfældigt billede i mappen */
$filnavne = glob("billeder/*.jpg");
$tilfaeldig = array_rand($filnavne);
$filnavn=$filnavne[$tilfaeldig];

/* Her findes størrelsen på billedet */
list($width, $height) = getimagesize($filnavn);

/* Her tilføjes html-kode, og billedet og dets størrelse indsættes i koden */
echo "<img src='$filnavn' width='$width' height='$height' alt='Her er en musetekst'>";

?>

KH Helle
Avatar billede CCodam Nybegynder
01. maj 2009 - 00:41 #1
Hvis du vil have at nummeret skal tælle op for hver upload, skal du bruge en metode til at holde styr på hvilket nummer du er noget til.
Dette kan gøres på flere forskellige måder, men i dette tilfælde er den letteste efter min mening, at have en txt fil, hvori nummeret du er kommet til står i.
Denne læses og opdateres så ved hvert upload...

Så åben notepad og skriv 1 (dette er tallet du starter på), gem filen som count.txt og upload den til mappen billeder

Derefter burde følgende script virke, jeg har markeret ændringerne med fed, så du lettere kan se disse:

<?php
//SETTINGS
$uploadDir = 'billeder/'; //Bibliotek, hvor filer uploades til - husk chmod 777
$allowedFileTypes = array('jpg','jpe','jpeg'); //Hvilke filer vil vi acceptere bliver uploadet?
//THUMBS SETTINGS
$thumbDir = 'billeder/'; //Bibliotek, hvor thumbs gemmes - husk chmod 777
$thumbPostfix = '_small'; //Hvad skal tilføjes til originalt filnavn?
$thumbHeight = 200; //Thumb højde
$thumbWidth = 200; //Thumb bredde

//Funktioner som bruges:
function getExtension($filename){
    return strtolower( pathinfo( $filename, PATHINFO_EXTENSION ) );
}

function resize( $filename, $thumbDir, $postfix, $maxw, $maxh  ){
    $extension = getExtension($filename);
    switch($extension){
        case 'jpg':
        case 'jpeg':
        case 'jpe':
            $srcim = imagecreatefromjpeg( $filename );
            break;
        default:
            return false;
    }
    $ow = imagesx( $srcim );
    $oh = imagesy( $srcim );
    $wscale = $maxw / $ow;
    $hscale = $maxh / $oh;
    $scale = min( $hscale, $wscale );
    $nw = round( $ow * $scale, 0 );
    $nh = round( $oh * $scale, 0 );
    $dstim = imagecreatetruecolor( $nw, $nh );
    imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh );
    switch($extension){
        case 'jpg':
        case 'jpeg':
        case 'jpe':
            $newfilename = $thumbDir . basename($filename, '.'.$extension) . $postfix . '.' . $extension;
            echo 'NewFile : ' . $newfilename . '<br />';
            imagejpeg( $dstim, $newfilename, $quality );
            break;
        default:
            return false;
    }
    imagedestroy( $dstim );
    imagedestroy( $srcim );
    return file_exists($newfilename);
}
//Er der trykket på Upload file knappen?
if(isset($_POST['myUpload'])){
    //Har vi en fil?
    if(is_uploaded_file($_FILES['myFile']['tmp_name'])){
        //Filendelse
        $extension = getExtension($_FILES['myFile']['name']);
 
        //Er filen en af de filer vi gerne vil have?
        if(in_array($extension,$allowedFileTypes)){
       
          // Get the existing count
          $fp = fopen($uploadDir.'count.txt', 'r');
          $count = fread($fp, 1024);
          fclose($fp);
          // Add 1 to the existing count
          $count = $count + 1;
          $fp = fopen($uploadDir.'count.txt', 'w');
          fwrite($fp, $count);
          fclose($fp);

         
            //Vi flytter filen fra tmp til vores UPLOADDIR
            if(move_uploaded_file($_FILES['myFile']['tmp_name'], $uploadDir.'billed'.$count.'.'.$extension)){
                if(resize($uploadDir.'billed'.$count.'.'.$extension, $thumbDir, $thumbPostfix , $thumbWidth, $thumbHeight)){
                    echo '<h5 style="color:green;">Filen ('.basename($_FILES['myFile']['name']).') er uploaded og resized med succes</h5>';
                }else{
                    echo '<h5 style="color:red;">Filen ('.basename($_FILES['myFile']['name']).')er uploaded med succes, men resize fejlede</h5>';
                }
            }else{
                echo '<h5 style="color:red;">Error - det var ikke muligt at uploade filen: '.basename($_FILES['myFile']['name']).'</h5>';
            }
        }else{
            echo '<h5 style="color:red;">Forkert filtype, tilladte filtype er: ('.implode(',',$allowedFileTypes).')</h5>';
        }
    }else{
        echo '<h5 style="color:red;">Ingen fil er valgt<h5>';
    }
}

//Vores form
echo '<form action="galleriuploadny4.php" method="post" enctype="multipart/form-data">';
echo 'File ('.implode(',',$allowedFileTypes).'): <input type="file" name="myFile"><br />';
echo '<input type="submit" name="myUpload" value="Upload file">';
echo '</form>';

/* Her findes et tilfældigt billede i mappen */
$filnavne = glob("billeder/*.jpg");
$tilfaeldig = array_rand($filnavne);
$filnavn=$filnavne[$tilfaeldig];

/* Her findes størrelsen på billedet */
list($width, $height) = getimagesize($filnavn);

/* Her tilføjes html-kode, og billedet og dets størrelse indsættes i koden */
echo "<img src='$filnavn' width='$width' height='$height' alt='Her er en musetekst'>";

?>



Du må endelig skrive hvis overstående ikke virker efter hensigten, eller du har yderligere spørgsmål :)
Avatar billede jakobdo Ekspert
01. maj 2009 - 07:38 #2
Hej Helle,
jeg rodede lidt videre med tidligere kode, og der var igen fejl.
Man skulle måske teste sin kode i ny og næ..

Men denne kode virker:

        //Er filen en af de filer vi gerne vil have?
        if(in_array($extension,$allowedFileTypes)){
       
            $prefix = 'Billed';
            $start = 1;
            $filename = $uploadDir . $prefix . sprintf("%02d",$start) . '.' . $extension;
            while(file_exists($filename)){
                $start++;
                $filename = $uploadDir . $prefix . sprintf("%02d",$start) . '.' . $extension;
            }
           
            //Vi flytter filen fra tmp til vores UPLOADDIR
            if(move_uploaded_file($_FILES['myFile']['tmp_name'],$filename)){
                if(resize($filename, $thumbDir, $thumbPostfix , $thumbWidth, $thumbHeight)){
                    echo '<h5 style="color:green;">Filen ('.basename($_FILES['myFile']['name']).') er uploaded og resized med succes, under navnet: '.$filename.'</h5>';
                }else{
                    echo '<h5 style="color:red;">Filen ('.basename($_FILES['myFile']['name']).')er uploaded med succes, men resize fejlede</h5>';
                }
Avatar billede uthsen Nybegynder
01. maj 2009 - 11:44 #3
CCodam det VIRKER BARE!!! TUSIND TAK - Læg et svar så du kan få point :O)

jakobdo jeg tvivler IKKE på at din kode virker, men sent i aftes havde jeg ikke lige hoved til at få det til at køre. Da CCodams kode virkede har jeg ikke tjekket din igen, med det vil jeg selvfølgelig gøre, så jeg kan blive lidt klogere :O)
Jeg har givet dig point i den anden tråd, hvor du så fint løste første del af mit problem - og sikkert også det andet.

Begge har I gjort at scriptet nu virker præcis som jeg gerne ville have det og TUSIND TAK TIL JER BEGGE!!!!

KH Helle
Avatar billede CCodam Nybegynder
01. maj 2009 - 11:51 #4
Det var så lidt :) og held og lykke med projektet...
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