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']);
2 svar · 226 visningar · startad av donkey
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?
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']);
ändrar jag det försvinner iof alla felmeddelanden, men ingen thumbnail genereras, inte ens en svart