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é
