** Idag gör vi arbeten på vårt system, kortare störningar och nedtid kan förekomma. **

Annons

Hjälp med PHP

Produkter
(logga in för att koppla)

StaffanH

Avslutat medlemskap
Sitter och knåpar med min sida for att göra det lätt att lägga till gallerier. Koden ska scanna igenom bilderna i en mapp, skapa thumbnails om det behövs och lägga upp dem på en sida. Allt fungerar utom själva skapandet av thumbnailsen.

Här är koden:

<?php
$filename = 'photos/CRW_0458.jpg';

$width = 150;
$height = 150;

header('Content-type: image/jpeg');

list($width_orig, $height_orig) = getimagesize($filename);

if ($width && ($width_orig < $height_orig)) {
$width = ($height / $height_orig) * $width_orig;
} else {
$height = ($width / $width_orig) * $height_orig;
}

$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

imagejpeg($image_p, 'thumbs/$filename', 100);

?>

Vad är det som inte stämmer med koden? Får inga felmeddelanden. Det är sista raden som jag inte är säker på. Jag vill att den skapar en thumbnail och sparar den som en fil i mappen thumbs.

Tack på förhand!
 
imagejpeg($image_p, 'thumbs/$filename', 100);

kanske ska vara något i stil med
imagejpeg($image_p, 'thumbs/' . $filename, 100); ?
 
Ok. Då kan jag tänka mig två fel.
Det första är filnamnet, det får troligtvis inte innehålla ett snedstreck.

Det andra är det som skickar ut alla konstiga tecken. Det beror på att den där koden skapar en jpeg. Det är som att öppna en jpeg i en texteditor. Sidan du anropar för att visa tumnaglarna måste i sig anropa det där skriptet som om det vore en bild.

Du måste alltså inkludera skriptet och använda det som om det vore en bild, dvs i en <img>-tag.

<img src="<? echo "skript.php" ?>">
 
Hej, kan du prova att bara klistra in koden i första posten som den är i någon sida, och länka till den sidan?
 
http://hardie.se/TEST/TEST/

Om jag anger ett filnamn så returnerar den ingenting. Nu har jag skrivit null på sista raden samt tagit bort mappnamnen.

<?php

$filename = 'CRW_0458.jpg';


$width = 150;
$height = 150;


header('Content-type: image/jpeg');


list($width_orig, $height_orig) = getimagesize($filename);

if ($width && ($width_orig < $height_orig)) {
$width = ($height / $height_orig) * $width_orig;
} else {
$height = ($width / $width_orig) * $height_orig;
}


$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);


imagejpeg($image_p, null, 100);


?>
 
Vill man ha lite mer html runt bilden så får man göra något sånt här:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<p>Här är lite text.</p>
<p>Och här kommer bilden infogad från skriptet:<br />
<img src="<?php echo "index.php" ?>" /><br />
</body>
</html>

Och det ser ut så här i slutänden:
http://www.sahlman.org/imgtest/bild.php
 
Felet med din kod som du postade först är hur du har skrivit sökvägen till 'thumbs' (som Anton redan påpekat). Testa och ändra sista raden till:
Källkod:
imagejpeg($image_p, "test.jpg", 100);
Testade på min server och det fungerade.
 
Jag får fortfarande ingenting. Har testat både Joachims och Tobias tips men det verkar inte fungera... får pula vidare med det imorgon.
tack för hjälpen iaf!
 
Har forskat lite mer i det och det verkar som om det är någon säkerhetsuppdatering på servern som sabbar det. Det är surftown jag använder och det är fler som har problem med samma sak där..
 
Jo, men ligger php.ini på servern (hittar nämligen ingen fil som heter så) eller ska jag skapa och lägga dit den själv?
 
Du kan också skapa en fil med denna kod och kalla den "phpinfo.php"

<?php
phpinfo();
?>

Då ska du kunna se vad du har för version av php samt hur den är konfigurerad
 
ANNONS
Upp till 6000:- Cashback på Sony-prylar