webForumDet fria alternativet

Thumbnailen blir bara svart

2 svar · 224 visningar · startad av donkey

donkeyMedlem sedan jan. 2004179 inlägg
#1

Har försökt få diverse olika thumbnail-script att fungera, men mina php-kunskaper räcker inte riktigt till. Det jag kommit närmast med är detta. Men problemet är att thumbnailarna blir svarta

<?php
session_start();
$_SESSION['userID'] = 1;
$user = $_SESSION['userID'];

 
include "conn.php";

error_reporting(E_ALL);
 
// Vilka filer skall få laddas upp?
$ext = array(".zip", ".jpg", ".gif");
 
// Max storlek
$max_file_size = "400000";
 
// Vart skall filerna laddas till?
// behörighet krävs!
$target_dir = "upload/$user/";
 
// Fixa lower case
$_FILES['userfile']['name'] = strtolower($_FILES['userfile']['name']);
 
// Inga mellanslag
$_FILES['userfile']['name'] = str_replace(' ', '_', $_FILES['userfile']['name']);
 
//Inga '$'
$_FILES['userfile']['name'] = str_replace('$', '_', $_FILES['userfile']['name']);
 
$file_name = $_FILES['userfile']['name'];
$file_name = strrchr($file_name, ".");
 
if(!in_array($file_name,$ext))
{
   $error = "Du kan inte ladda upp en fil med det filformatet. Dom som stöds är ";
   foreach( $ext as $exts ){
   $error .= "$exts ";
   }
   die ("$error");
}
$file_size = $_FILES['userfile']['size'];
if($file_size > $max_file_size) {
   die ("Filen är för stor, max storleken är ".$max_file_size." Kb");
}
// Kolla att en fil är uppladdad och flytta den till målkatalogen
if (isset($_POST['submit']) && is_uploaded_file($_FILES['userfile']['tmp_name'])) {
   move_uploaded_file($_FILES['userfile']['tmp_name'], $target_dir.$_FILES['userfile']['name']);
 

$user = $_SESSION['userID'];
$fil = $_FILES["userfile"]["name"];
$datum = date("Y-m-d H:i");

$dbinfo = mysql_db_query("wse104056", "INSERT log34 (user, file, date) VALUES ('$user', '$fil', '$datum')");
 

function createThumb($name, $thumbname, $new_w, $new_h)
{
    $ext = strtolower( substr( $name, strrpos( $name, '.') + 1 ) );

    switch( $ext )
    {
        case 'jpg':
        case 'jpeg':
            $imgfunc = 'imagejpeg';
            $name = imagecreatefromjpeg( $name );
            break;
        case 'png':
            $imgfunc = 'imagepng';
            $src_img = imagecreatefrompng( $name );
            break;
        case 'gif':
            $imgfunc = 'imagegif';
            $src_img = imagecreatefromgif( $name );
            break;
        default:
            return false;
    }

    $old_x = imageSX( $name );
    $old_y = imageSY( $name );

    if( $old_x > $old_y ) 
    {
        $thumb_w = $new_w;
        $thumb_h = $old_y * ( $new_h / $old_x );
    }
    elseif( $old_x < $old_y ) 
    {
        $thumb_w = $old_x * ( $new_w / $old_y );
        $thumb_h = $new_h;
    }
    elseif( $old_x == $old_y ) 
    {
        $thumb_w = $new_w;
        $thumb_h = $new_h;
    }

    $dst_img = ImageCreateTrueColor( $thumb_w, $thumb_h );

    imagecopyresampled( $thumbname, $name, 0, 0, 0, 0, $thumb_w, $thumb_h, $old_x, $old_y ); 
    
    $imgfunc( $thumbname, $thumbname ); 

    imagedestroy( $thumbname ); 
    imagedestroy( $name );
    
    return true;
}

createThumb($fil, 'thumbs/'.$fil, 200, 150); 

Header ("Location: upload.php");
}
 
?>

De felmeddelande jag får är

**Warning: imagecreatefromjpeg(dsc00446.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in /usr/home/web/wse104056/log34/upload2.php on line 81

Warning: imagesx(): supplied argument is not a valid Image resource in /usr/home/web/wse104056/log34/upload2.php on line 95

Warning: imagesy(): supplied argument is not a valid Image resource in /usr/home/web/wse104056/log34/upload2.php on line 96

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /usr/home/web/wse104056/log34/upload2.php on line 116

Warning: imagejpeg(): supplied argument is not a valid Image resource in /usr/home/web/wse104056/log34/upload2.php on line 118

Warning: imagedestroy(): supplied argument is not a valid Image resource in /usr/home/web/wse104056/log34/upload2.php on line 120

Warning: imagedestroy(): supplied argument is not a valid Image resource in /usr/home/web/wse104056/log34/upload2.php on line 121**

Som sagt, säkert jag som inte riktigt förstår mej på grejjerna, men är det något enkelt fel som går att åtgärda?

PeeerMedlem sedan mars 20025 907 inlägg
#2

Det första felmeddelandet tyder på att du skickat in en felaktig sökväg. Ändra

$fil  = $_FILES["userfile"]["name"]; 
//Till
$fil = $target_dir.$_FILES['userfile']['name']);
donkeyMedlem sedan jan. 2004179 inlägg
#3

ändrar jag det försvinner iof alla felmeddelanden, men ingen thumbnail genereras, inte ens en svart

141 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)