Avatar billede rhandersen Nybegynder
22. februar 2005 - 19:00 Der er 5 kommentarer og
1 løsning

imagejpeg problemer

Hej Alle

Jeg har lavet et lille uploadscript, men mit problem er at den kommer med denne fejl:

Warning: imagejpeg(): Unable to open 'inc/galleri/ekstra/6-57-18-22-2-2005_extra.jpg' for writing in /usr/home/web/web36045/adm/inc/galleri/uploadex.php on line 59

Med denne kode:

<?
include("dbcon.php");
$id = $_GET['ID'];
$ex = $_GET['ex'];
$opret = $_POST['rettype'];
if($opret == "ny"){
$thumbnail_dir = "inc/galleri/ekstra/"; // din mappe til thumbnails
function tjektype($type) {
    $tilladt = array('image/x-png', 'image/png', 'image/pjpeg', 'image/jpeg');
    if(!in_array($type, $tilladt)) {
        return false;
    }else{
        return true;
    }
}

function tjekfilnavn($filnavn) {
    $i = 0;
    $ext = strrchr($filnavn, '.');
    $navn = substr($filnavn, 0, -strlen($ext));
    while (is_file($filnavn)) {
        $i++;
        $filnavn = $navn . "_" . sprintf("%03u", $i) . $ext;
    }
    return $filnavn;
}

if (isset($_POST['submit']) && $_POST['submit'] == "Upload" && $_POST['rettype'] == "ny") {
    $billede = $_FILES['nyhedsBillede']['name'];
    $billede = strtolower($billede);// ændre alt til små bogstaver
    $type = strrchr($billede, ".");// For at finde filtypen til tjek af jpeg kontra jpg 
    $dest = $uploaddir . $billede;// Stien til det store billede
    $dest = tjekfilnavn($dest);
    $bygaar = $_POST['aar'];
    $bynavn = $_POST['bynavn'];
    $bygherre = $_POST['bygherre'];
    $gade = $_POST['gade'];
    $dato_array = getdate();
    $oprettelsesdato = $dato_array['mday'] . "-" . $dato_array['mon'] . "-" . $dato_array['year'];
$dato = $dato_array['seconds'] . "-" .$dato_array['minutes'] . "-" .$dato_array['hours'] . "-" .$dato_array['mday'] . "-" . $dato_array['mon'] . "-" . $dato_array['year'];
    $source = $_FILES['nyhedsBillede']['tmp_name'];
    if (is_uploaded_file($source)) {
        if (tjektype($_FILES['nyhedsBillede']['type'])) {
            if (move_uploaded_file($source, $dest)) {
                list($width, $height) = getimagesize($dest);
                if($height <= $width){
                    $new_width = 100;
                } else {
                    $new_width = 82;
                }
                $krympefaktor = $new_width/$width;
                $new_height = round($height * $krympefaktor);
                $destinationImage = imagecreatetruecolor($new_width, $new_height);
                if ($type == ".jpeg" || $type == ".jpg") {
                    $sourceImage = imagecreatefromjpeg($dest);
                    imagecopyresampled($destinationImage, $sourceImage, 0, 0, 0, 0, $new_width, $new_height, imagesx($sourceImage), imagesy($sourceImage));
           
                    $thumbnail = $thumbnail_dir.basename($dato, $type)."_extra".$type;
                    imagejpeg($destinationImage, $thumbnail);
                } elseif ($type == ".png") {
                    $sourceImage = imagecreatefrompng($dest);
                    imagecopyresampled($destinationImage, $sourceImage, 0, 0, 0, 0, $new_width, $new_height, imagesx($sourceImage), imagesy($sourceImage));
                    $thumbnail = $thumbnail_dir.basename($dato, $type)."_extra".$type;
                    imagepng($destinationImage, $thumbnail);
                }                   
            }
              if($ex = 1){
                mysql_query("UPDATE galleriextra SET extra='$thumbnail' WHERE GALID = $id") or die(mysql_error());
                }
                elseif($ex = 2) {
                mysql_query("UPDATE galleriextra SET extrato='$thumbnail' WHERE GALID = $id") or die(mysql_error());
                }
                elseif($ex = 3) {
                mysql_query("UPDATE galleriextra SET extratre='$thumbnail' WHERE GALID = $id") or die(mysql_error());
                }
                elseif($ex = 4) {
                mysql_query("UPDATE galleriextra SET extrafire='$thumbnail' WHERE GALID = $id") or die(mysql_error());
                }
                mysql_close();
                $besked = "<span class=menu><br><br>Billedet er opdateret!</span>";
        } else {
                $besked = "<span class=menu><br><br>Der opstod en ukendt fejl</span><br><a href=\"index.php?ID=" . $id . "&page=galleriskift&ex=1\" class=\"linkS\">Prøv igen</a>";
        }
    } else {
            $besked = "<span class=menu><br><br>Du prøvede at gemme et billedeformat som ikke er tilladt. Du kan gemme billeder i JPEG og PNG formaterne.</span><br><a href=\"index.php?ID=" . $id . "&page=galleriskift&ex=1\" class=\"linkS\">Skift</a>Prøv igen</a>";
    }
}
echo $besked;

} else {
    ?>
    <div style="text-align:center" class="normtext"><br><br><br><br><br><form name="admin"  method="post" action="<? echo "index.php?page=gallery&galleripage=uploadex&ex=$ex&ID=$id"; ?>" enctype="multipart/form-data">
    <table><tr>
    <td><span class="normtext">Billede:</span></td><td colspan="3"><input name="nyhedsBillede" type="file" size="20"></td>
    </tr>
    <tr>
    <td><input name="rettype" type="hidden" value="ny"><input name="submit" type="submit" value="Upload"></td>
    </tr></table></form>
    <?
}
?>

Kan i hitte ud af det?

Mvh Rasmus
Avatar billede detox Nybegynder
22. februar 2005 - 19:51 #1
Det er formentlig stien det er galt med. Prøv at rette:

$thumbnail_dir = "inc/galleri/ekstra/"; // din mappe til thumbnails

til fx:

$thumbnail_dir = "ekstra/"; // din mappe til thumbnails
Avatar billede rhandersen Nybegynder
22. februar 2005 - 20:46 #2
Nope, det var det ikke
Avatar billede detox Nybegynder
22. februar 2005 - 21:27 #3
Så stien er altså korrekt? Den ser ellers ikke rigtig ud:

/usr/home/web/web36045/adm/inc/galleri/inc/galleri/ekstra/6-57-18-22-2-2005_extra.jpg

jeg vil gætte på:

/usr/home/web/web36045/adm/inc/galleri/ekstra/6-57-18-22-2-2005_extra.jpg

men du kan jo prøve med den fulde sti istedet:

$thumbnail_dir = $_SERVER['DOCUMENT_ROOT'] . "/hvad_nu_din_sti_er/"; // din mappe til thumbnails
Avatar billede rhandersen Nybegynder
23. februar 2005 - 11:02 #4
jeg har selv fundet ud af det, jeg havde skrevet noget forket...

Smid svar...
Avatar billede detox Nybegynder
23. februar 2005 - 12:21 #5
Hvis du selv har svaret, vil jeg ikke tage dine point.
Avatar billede rhandersen Nybegynder
23. februar 2005 - 17:12 #6
Oki, tak fordi du brugte tid på mig:)
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