Hej!
Jag har ett bildscript som har fungerat utan problem tills jag började lägga dit en funktion som när man laddar upp skapar en thumbnail utöver den uppladdade och något omskalade bilden.
Nu vill jag spara thumbnail-filerna till en speciell mapp. Då får jag upp ett felmeddelande (se bifogad fil)
Här är koden till scriptet:
<?php
// ###################################### Vars
$img_dir = $_SERVER['DOCUMENT_ROOT']."/temp/";// Sökväg till mappen dör bilden ska sparas
$new_img_width = '460';// Bredd som bilden ska ha
$img_compress = 90;// Vilken komprimering (100=ingen)
$uploaded_img_name = $_FILES['foto']['name'];// foto är namnet på fältet
$uploaded_img_location = $_FILES['foto']['tmp_name'];
$img_description = $_POST['picturedescription'];
// ######################################
if (isset($_POST['action']) AND $_POST['action'] == 'upload') {
$img_x_y_size = getimagesize($uploaded_img_location);
// Ändra storleken om bilden är större än $new_img_width
if ($new_img_width < $img_x_y_size[0]) {
$new_img_height = ceil(($new_img_width / $img_x_y_size[0]) * $img_x_y_size[1]);
// Gör om bildens storlek
$new_image = imagecreatetruecolor($new_img_width, $new_img_height);
// Kontrollera vilken bildtyp det är (1=gif , 2=jpg , 3=png)
switch($img_x_y_size[2]) {
case 1:
$image = imagecreatefromgif($uploaded_img_location);
break;
case 2:
$image = imagecreatefromjpeg($uploaded_img_location);
$fileending = ".jpg";
break;
case 3:
$image = imagecreatefrompng($uploaded_img_location);
break;
}
imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_img_width, $new_img_height, $img_x_y_size[0], $img_x_y_size[1]);
//Sedan skapas bilden som ska innehålla thumbnailen
$dstW = 150; // Bredd på thumbnail
#$dstH = 100; // Höjd på thumbnail
#$n_width=$width_size; // Fix the width of the thumb nail images
$ratio = ($new_img_width / $new_img_height);
//$n_height=100; // Fix the height of the thumb nail imaage
$dstH = round($dstW / $ratio);
$dst_im = imagecreatetruecolor($dstW, $dstH);
$srcW = imagesx($new_image);
$srcH = imagesy($new_image);
imagecopyresampled ($dst_im, $new_image, 0, 0, 0, 0, $dstW, $dstH, $srcW, $srcH);
// Anropa databasen för ledigt id till bild
$sqlSelect = "SELECT pictureID FROM tblpictures ORDER BY pictureID DESC LIMIT 1";
$RSobj = mysql_query($sqlSelect) or die (mysql_error());
$row = mysql_fetch_array($RSobj);
$number = $row['pictureID']+1;
$uploaded_img_name = $number.$fileending;
// Kopiera bilden till sin mapp
$save_img = $img_dir . $uploaded_img_name;
imagejpeg($new_image, $save_img, $img_compress);
//Sökväg och kopiering till rätt mapp för thumbnail
$save_img_th = $img_dir."thumbnails/".$uploaded_img_name;
[B]imagejpeg($dst_im, $save_img_th, 100);[/B]
// Frigör minne som associerats med bilderna
imagedestroy($image);
imagedestroy($new_image);
} else {
$uploaded_img_name = $number.$fileending;
copy($uploaded_img_location, $img_dir . '/' . $uploaded_img_name);
}
$dir_pic = "./temp/";
$sqlInsert = "INSERT INTO tblpictures (path, filename, description, date_time, memberID) VALUES ('".$dir_pic."', '".$uploaded_img_name."', '".$img_description."', now(), '".$_SESSION["uid"]."')";
mysql_query($sqlInsert) or die (mysql_error());
$dir_pic_thumb = "./temp/thumbnails/";
$sqlInsert = "INSERT INTO tblpicturesthumbnails (thumbnailID, path, filename) VALUES ('".$number."', '".$dir_pic_thumb."', '".$uploaded_img_name."')";
mysql_query($sqlInsert) or die (mysql_error());
echo "<script Language='JavaScript'>location.href=('../uploadscript.php');</script>";
}
?>
Rad 80 är den fetmarkerade raden.
