Jag vill att thumbnailen ska ha precis samma namn som bilden, fast ligga i undermappen "thumbnails" istället för "bilder". Koden nedan fungerar, fast ger då förstås alltid namnet "bild.jpg".
Här är hela koden, men det gäller alltså bara det nedersta stycket - namnet där nere som jag vill göra om till en variabel, fast så fort jag gör det slutar allt fungera...
Ett stycke php-kod:
<?php
if(!is_dir("./bilder")) mkdir("./bilder", 0755);
move_uploaded_file($_FILES['Filedata']['tmp_name'], "./bilder/".$_FILES['Filedata']['name']);
chmod("./bilder/".$_FILES['Filedata']['name'], 0777);
$i = new imagethumbnail();
$i->open("bilder/".$_FILES['Filedata']['name']);
$i->setX(100);
header("Content-type: image/jpeg;");
$i->imagejpeg();
class imagethumbnail {
var $filename;
var $x;
var $y;
var $image;
var $thumbnail;
function open($filename) {
$this->filename = $filename;
$imageinfo = array();
$imageinfo = getimagesize($this->filename,$imageinfo);
$this->old_x = $imageinfo[0];
$this->old_y = $imageinfo[1];
switch ($imageinfo[2]) {
case "2": $this->image = imagecreatefromjpeg($this->filename); break;
}
}
function setX($x="") {
if (isset($x)) { $this->x = $x; }
return $this->x;
}
function setY($y="") {
if (isset($y)) { $this->y = $y; }
return $this->y;
}
function generate() {
if ($this->x > 0 and $this->y > 0) {
$new_x = $this->x;
$new_y = $this->y;
} elseif ($this->x > 0 and $this->x != "") {
$new_x = $this->x;
$new_y = ($this->x/$this->old_x)*$this->old_y;
} else {
$new_x = ($this->y/$this->old_y)*$this->old_x;
$new_y = $this->y;
}
$this->thumbnail = imagecreatetruecolor($new_x,$new_y);
$white = imagecolorallocate($this->thumbnail,255,255,255);
imagefill($this->thumbnail,0,0,$white);
imagecopyresampled ( $this->thumbnail, $this->image, 0, 0, 0, 0, $new_x, $new_y, $this->old_x, $this->old_y);
}
function imagejpeg($nybild="thumbnails/bild.jpg",$quality=80) {
if (!isset($this->thumbnail)) { $this->generate(); }
imagejpeg($this->thumbnail,$nybild,$quality);
}
}
?>
Jag har testat lite olika varianter, men som sagt har jag alltför dålig koll för att riktigt fatta vad jag gjort för fel när det inte funkar...
Andra idéer på hur man omformulerar skriptet eller tar bort onödiga delar välkomnas, då den ändrats ungefär 100 ggr om och jag inte hittar mer.. >_<