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?