Avatar billede uthsen Nybegynder
30. april 2009 - 11:04 Der er 15 kommentarer og
1 løsning

Mit billede skal hedde Billed01_small.jpg og ikke Billed01.jpg_small

Jeg kan simpelthen ikke få billedet til at hedde Billed01_small.jpg og tror jeg har prøvet alt - måske der er nogle som vil hjælpe?

Et eksempel ligger her:
http://www.dkk-chihuahua-hvalpe.dk/eksperten/galleri0001a.zip

Selve koden:
<!--*************************************************Hvalp1*********************************************'-->
<a name="hvalp1billede"></a>
<?php
//SETTINGS
$uploadDir = 'billeder/'; //Bibliotek, hvor filer uploades til - husk chmod 777
$allowedFileTypes = array('jpg'); //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 getExtension1($filename){
return strtolower( pathinfo( $filename, PATHINFO_EXTENSION ) );
}
function resize1( $filename, $newfilename, $maxw, $maxh  )
{
$extension = getExtension1($filename);
switch($extension)
{

case 'jpg':
$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':
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['myUpload1']))
{
//Har vi en fil?
if(is_uploaded_file($_FILES['myFile1']['tmp_name']))
{
//Filendelse
$extension = getExtension1($_FILES['myFile1']['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['myFile1']['tmp_name'],$uploadDir . basename($_FILES['myFile1']['name'])))
{
if(resize1($uploadDir . basename($_FILES['myFile1']['name']), $thumbDir . basename($_FILES['myFile1']['name']). $thumbPostfix , $thumbWidth, $thumbHeight)){
echo '<h5 style="color:green;">Filen ('.basename($_FILES['myFile1']['name']).') er uploaded og resized med succes</h5>';
}else{
echo '<h5 style="color:red;">Filen ('.basename($_FILES['myFile1']['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['myFile1']['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="galleriupload.php" target="_self" method="post" enctype="multipart/form-data">';
echo 'File ('.implode(',',$allowedFileTypes).'): <input type="file" name="myFile1"><br />';
echo '<input type="submit" name="myUpload1" 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'>";


?>

Kan jeg samtidig få koden til at GEMME en af brugern uploaded fil med navnet Billed01 og efterfølgende Billed02 og så fremdeles vil jeg blive rigtig glad:O) I mit download zip eksempel har jeg jo selv ombøbt billederne til Billed01..Billed02..

KH Helle
Avatar billede jakobdo Ekspert
30. april 2009 - 12:18 #1
Test denne funktion:

function resize1( $filename, $postfix, $maxw, $maxh  ){
    $extension = getExtension1($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 = basename($filename, '.jpg') . $postfix . '.jpg';
            imagejpeg( $dstim, $newfilename, $quality );
            break;
        default:
            return false;
    }
    imagedestroy( $dstim );
    imagedestroy( $srcim );
    return file_exists($newfilename);
}
Avatar billede uthsen Nybegynder
30. april 2009 - 12:27 #2
Der meldes fejl:
Parse error: parse error, unexpected '}' in C:\Apache\htdocs\EKSPERTEN ARBEJDE\galleri0001a\galleriupload - Kopi.php on line 84




<a name="hvalp1billede"></a>
<?php
//SETTINGS
$uploadDir = 'billeder/'; //Bibliotek, hvor filer uploades til - husk chmod 777
$allowedFileTypes = array('jpg'); //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 getExtension1($filename){
return strtolower( pathinfo( $filename, PATHINFO_EXTENSION ) );
}
function resize1( $filename, $postfix, $maxw, $maxh  ){
    $extension = getExtension1($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 = basename($filename, '.jpg') . $postfix . '.jpg';
            imagejpeg( $dstim, $newfilename, $quality );
            break;
        default:
            return false;
    }
    imagedestroy( $dstim );
    imagedestroy( $srcim );
    return file_exists($newfilename);
}
$extension = getExtension1($filename);
switch($extension)
{

case 'jpg':
$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':
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['myUpload1']))
{
//Har vi en fil?
if(is_uploaded_file($_FILES['myFile1']['tmp_name']))
{
//Filendelse
$extension = getExtension1($_FILES['myFile1']['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['myFile1']['tmp_name'],$uploadDir . basename($_FILES['myFile1']['name'])))
{
if(resize1($uploadDir . basename($_FILES['myFile1']['name']), $thumbDir . basename($_FILES['myFile1']['name']). $thumbPostfix , $thumbWidth, $thumbHeight)){
echo '<h5 style="color:green;">Filen ('.basename($_FILES['myFile1']['name']).') er uploaded og resized med succes</h5>';
}else{
echo '<h5 style="color:red;">Filen ('.basename($_FILES['myFile1']['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['myFile1']['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="galleriupload.php" target="_self" method="post" enctype="multipart/form-data">';
echo 'File ('.implode(',',$allowedFileTypes).'): <input type="file" name="myFile1"><br />';
echo '<input type="submit" name="myUpload1" 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 jakobdo Ekspert
30. april 2009 - 12:30 #3
Hvad er linje 83-85 ?
Avatar billede uthsen Nybegynder
30. april 2009 - 13:08 #4
hvis ellers NotePad regner rigtigt så :

li 78 function resize1( $filename, $postfix, $maxw, $maxh  ){
li 79  $extension = getExtension1($filename);
li 80  switch($extension){
li 81      case 'jpg':
li 82      case 'jpeg':
li 83      case 'jpe':
li 84          $srcim = imagecreatefromjpeg( $filename );
li 85            break;
li 86        default:


KH Helle
Avatar billede jakobdo Ekspert
30. april 2009 - 13:13 #5
Du må have copy/pasted min kode forkert.

Prøv denne kode:

<!--*************************************************Hvalp1*********************************************'-->
<a name="hvalp1billede"></a>
<?php
//http://www.eksperten.dk/spm/873449
//SETTINGS
$uploadDir = 'billeder/'; //Bibliotek, hvor filer uploades til - husk chmod 777
$allowedFileTypes = array('jpg'); //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 getExtension1($filename){
return strtolower( pathinfo( $filename, PATHINFO_EXTENSION ) );
}
function resize1( $filename, $postfix, $maxw, $maxh  ){
    $extension = getExtension1($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 = basename($filename, '.jpg') . $postfix . '.jpg';
            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['myUpload1']))
{
//Har vi en fil?
if(is_uploaded_file($_FILES['myFile1']['tmp_name']))
{
//Filendelse
$extension = getExtension1($_FILES['myFile1']['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['myFile1']['tmp_name'],$uploadDir . basename($_FILES['myFile1']['name'])))
{
if(resize1($uploadDir . basename($_FILES['myFile1']['name']), $thumbDir . basename($_FILES['myFile1']['name']). $thumbPostfix , $thumbWidth, $thumbHeight)){
echo '<h5 style="color:green;">Filen ('.basename($_FILES['myFile1']['name']).') er uploaded og resized med succes</h5>';
}else{
echo '<h5 style="color:red;">Filen ('.basename($_FILES['myFile1']['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['myFile1']['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="galleriupload.php" target="_self" method="post" enctype="multipart/form-data">';
echo 'File ('.implode(',',$allowedFileTypes).'): <input type="file" name="myFile1"><br />';
echo '<input type="submit" name="myUpload1" 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'>";


?>
Avatar billede uthsen Nybegynder
30. april 2009 - 18:06 #6
koden laver stadig små billeder med navn som f.eks. :
b016.jpg_small

det skulle være b016_small.jpg


og aller helst skulle de billeder bruger vælger omdøbes til henholdsvis:
Billed01.jpg og Billed01_small.jpg

Jeg er tilbage senere i aften :O)

KH Helle
Avatar billede jakobdo Ekspert
30. april 2009 - 18:13 #7
Du skal lige rette linjen:

if(resize1($uploadDir . basename($_FILES['myFile1']['name']), $thumbDir . basename($_FILES['myFile1']['name']). $thumbPostfix , $thumbWidth, $thumbHeight)){

til:

if(resize1($uploadDir . basename($_FILES['myFile1']['name']), $thumbPostfix , $thumbWidth, $thumbHeight)){

Så bør det altså virke.
Avatar billede uthsen Nybegynder
30. april 2009 - 18:56 #8
Nej desværre filerne hedder stadig f.eks. a003.jpg_small

Men det er netop i den linie jeg synes jeg har prøvet alt :O)

KH Helle J
Avatar billede jakobdo Ekspert
30. april 2009 - 21:32 #9
Jeg kunne godt se der var fejl, pinligt...

Prøv denne 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="873449.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'>";

?>
Avatar billede uthsen Nybegynder
30. april 2009 - 21:53 #10
Det virker fint :O)

Kan du ogå få koden til at omdøbe den fil bruger uploader til Billed01.jpg og Billed02.jpg og de små til Billed01_small.jpg og Billed02_small.jpg

KH Helle
Avatar billede jakobdo Ekspert
30. april 2009 - 22:04 #11
Du kunne måske lave noget ala:

$filename = $uploadDir . 'Billed00.jpg';

$counter = 1;
while(file_exists($filename)){
$filename = $uploadDir . 'Billed' . sprintf("%02",$counter) . '.jpg';
$counter++;
}

move_upload...($_FILES[...][tmp_name],$filename);
og resize($filename,$thumbDir,$postfix,200,200);
Avatar billede uthsen Nybegynder
30. april 2009 - 22:06 #12
Prøver at lege lidt med det :O)
Avatar billede uthsen Nybegynder
30. april 2009 - 22:50 #13
Jeg har siddet og leget lidt med det sidste du lavede, men har endnu ikke fået det til at køre, men ......
ved du hvad - Jeg synes altså det er så flot det du allerede har fået lavet, så kan du ikke smide et svar, så kan du få point for det du har løst for mig.




Jeg opretter så et nyt spørgsmål til det sidste.

+ et spørgsmål mere hvor koden skal bruges i anden sammenhæng.

Synes du har fortjent point allerede nu og jeg vil selvfølgelig i mellemtiden lege videre med din idé. Får jeg det til at køre poster jeg løsningen her :O)

KH Helle
Avatar billede jakobdo Ekspert
01. maj 2009 - 07:32 #14
Svar!
Avatar billede uthsen Nybegynder
01. maj 2009 - 11:37 #15
TUSIND MANGE TAK FOR DIN STORE HJÆLP!!!!!! :O))))


KH Helle
Avatar billede jakobdo Ekspert
01. maj 2009 - 11:40 #16
Takker for point.
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