Avatar billede jop... Nybegynder
30. september 2006 - 12:38 Der er 1 løsning

Billede upload - PHP

Hej Eksperter.

Jeg sidder og leger lidt med dette script, men kan simpelthen bare ikke få det til at lykkedes.

Den uploader fint nok billedet, men den nægter at lave en thumb.

Scriptet kommer her:
------------------------------------------------------------------
<?
$id = 1;
$picnr = 1;

$uploaddir = "billeder/"; // Mappe til færdige billeder
$maxsize = 400; // Maximum bredde/højde
$thumbmaxsize = 40; // Maximum bredde/højde
if (isset($_POST['submit']) && $_POST['submit'] == "Send Fil") {
    $source = $_FILES['upfile']['tmp_name'];
    $name = $_FILES['upfile']['name'];
    $ext = strrchr($name, '.');
    if (is_uploaded_file($source)) {
        if (tjektype($name)) {
            $dest = $uploaddir . $id . "_" . $picnr . $ext;
            $destthumb = $uploaddir . $id . "_" . $picnr . "_thumb" . $ext;
            if (move_uploaded_file($source, $dest)) {
                mainpic($dest, $maxsize);
                makethumb($destthumb, $thumbmaxsize);
                echo "Upload ok!";
                echo "<p><img src='".$dest."' alt='billede' /></p>";
                echo "<p><img src='".$destthumb."' alt='billede' /></p>";
      include("conn.php");
      $insertSQL = "insert into biler (billede1)
      values ('$dest')";
      mysql_query($insertSQL) or die(mysql_error()); 

            } else {
                echo "Ingen upload!";
            }
        } else {
            echo "Denne filtype er ikke tilladt at uploade!";
        }
    } else {
        echo "Ulovlig handling!";
    }
}

function Mainpic($sourcefile, $size) {
    $ext = strrchr($sourcefile, '.');
    if ($ext == '.png') {
        $im = imageCreateFromPNG($sourcefile);
    } elseif ($ext == '.jpg' || $ext == '.jpeg') {
        $im = imageCreateFromJPEG($sourcefile);
    }
    $source_x = imagesx($im);
    $source_y = imagesy($im);
    $delta = $size/max($source_x, $source_y);
    $dest_x = round($source_x*$delta);
    $dest_y = round($source_y*$delta);
    $target_id = imagecreatetruecolor($dest_x, $dest_y);   
    imagecopyresampled($target_id,$im,0,0,0,0, $dest_x,$dest_y, $source_x,$source_y);
    $black = imagecolorallocate ($target_id, 0, 0, 0);
    imagecolortransparent($target_id, $black);
    if ($ext == '.png') {
        imagePNG($target_id, $sourcefile);
    } elseif ($ext == '.jpg' || $ext == '.jpeg') {
        imageJPEG($target_id, $sourcefile);
    }
}

function Makethumb($sourcefile, $size) {
    $ext = strrchr($sourcefile, '.');
    if ($ext == '.png') {
        $im = imageCreateFromPNG($sourcefile);
    } elseif ($ext == '.jpg' || $ext == '.jpeg') {
        $im = imageCreateFromJPEG($sourcefile);
    }
    $source_x = imagesx($im);
    $source_y = imagesy($im);
    $delta = $size/max($source_x, $source_y);
    $dest_x = round($source_x*$delta);
    $dest_y = round($source_y*$delta);
    $target_id = imagecreatetruecolor($dest_x, $dest_y);   
    imagecopyresampled($target_id,$im,0,0,0,0, $dest_x,$dest_y, $source_x,$source_y);
    $black = imagecolorallocate ($target_id, 0, 0, 0);
    imagecolortransparent($target_id, $black);
    if ($ext == '.png') {
        imagePNG($target_id, $sourcefile);
    } elseif ($ext == '.jpg' || $ext == '.jpeg') {
        imageJPEG($target_id, $sourcefile);
    }
}

function tjektype($filnavn) {
    $ext = strrchr($filnavn, '.');
    $tilladt = array('.jpg', '.jpeg', '.png');
    if(!in_array($ext, $tilladt)) {
        return false;
    }else{
        return true;
    }
}

function tjekfil($filnavn) {
    $i = 0;
    $arr = explode(".", $filnavn);
    $ext = array_pop($arr);
    $navn = implode(".", $arr);
    $navn = str_replace(' ', '_', $navn);
    while (is_file($filnavn)) {
        $i++;
        $filnavn = $navn . "_" . sprintf("%06u", $i) . "." . $ext;
  }
    return $filnavn;
}
?>
-----------------------------------------------------------------

De kommer med fejlen:

Warning: imagecreatefromjpeg(billeder/1_1_thumb.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in /usr/home/hennings/public_html/X4/billeder_form.php on line 66

Warning: imagesx(): supplied argument is not a valid Image resource in /usr/home/hennings/public_html/X4/billeder_form.php on line 68

Warning: imagesy(): supplied argument is not a valid Image resource in /usr/home/hennings/public_html/X4/billeder_form.php on line 69

Warning: Division by zero in /usr/home/hennings/public_html/X4/billeder_form.php on line 70

Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in /usr/home/hennings/public_html/X4/billeder_form.php on line 73

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /usr/home/hennings/public_html/X4/billeder_form.php on line 74

Warning: imagecolorallocate(): supplied argument is not a valid Image resource in /usr/home/hennings/public_html/X4/billeder_form.php on line 75

Warning: imagecolortransparent(): supplied argument is not a valid Image resource in /usr/home/hennings/public_html/X4/billeder_form.php on line 76

Warning: imagejpeg(): supplied argument is not a valid Image resource in /usr/home/hennings/public_html/X4/billeder_form.php on line 80

Det er i Makethumb den laver denne fejl.

Nogen idéer?

Mvh René
Avatar billede jop... Nybegynder
30. september 2006 - 13:45 #1
Jeg har selv løst denne..  :o)
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