webForumDet fria alternativet

Warning: imagejpeg()

PHP

10 svar · 349 visningar · startad av Pedda

Medlem sedan juni 20006 031 inlägg
Frågan#1

Tänkte passa på att testa att göra thumbnails nu när man endå är hemma sjuk. Men får det inte att fungera riktigt. Får följande felmeddelanden:

Warning: imagejpeg(): Unable to open '../covers/' for writing in c:\apache\htdocs\cd-skivan\cd-admin\add.php on line 62

Warning: Cannot modify header information - headers already sent by (output started at c:\apache\htdocs\cd-skivan\cd-admin\add.php:62) in c:\apache\htdocs\cd-skivan\cd-admin\add.php on line 66

Har aldrig testat att ändra storlek på filer, så jag vet inte riktigt vad jag har gjort för fel.
Testade att flytta filen med move_uploaded_file($file['tmp_name'],$mapp . $file['name']); innan och det funkade. Så skrivrättigheterna till mappen finns.

Så här ser koden ut:

if (isset($_POST['NySkiva'])){
	$mapp = "../covers/";
	
	if(!empty($_FILES['file']['name'])) { 
	$file = $_FILES['file']; 
	$storlek = getimagesize($_FILES['file']['tmp_name']);
	$nybredd = 100;
	$nyhojd = 100;
	// kolla filändelsen  
	$filandelse = explode('.',$file['name']); 
	$sort = count($filandelse) - 1; 
	$so = $filandelse[$sort];
	// Allowed filetypes
	if ($so != 'jpg'){   
		// Fel filtyp 
		die("<center>Fel filtyp, måste vara jpg!</center>");
	}
	if (($storlek[0] - $nybredd) >= ($storlek[1] - $nyhojd)) {
		$bildbredd = $nyhojd;
		$bildhojd = ($nybredd/$storlek[0])*$storlek[1];
	} else {
		$bildhojd = $nyhojd;
		$bildbredd = ($bildhojd/$storlek[1])*$storlek[0]; 
	}
	$bild_kalla = imagecreatefromjpeg($_FILES['file']['tmp_name']);
	$bild_skapa = imagecreate($bildbredd, $bildhojd);
	imagecopyresampled ($bild_skapa, $bild_kalla, 0, 0, 0, 0, $bildbredd, $bildhojd, $storlek[0], $storlek[1]);
	imagejpeg ($bild_skapa, $mapp);
	imagedestroy ($bild_skapa);
	$sql = "INSERT INTO cd_skiva (kat, artist, titel, file) VALUES('{$_POST['kat']}', '{$_POST['artist']}', '{$_POST['titel']}', '".$file['name']."')"; 
	mysql_query($sql);
	header("Location: settings.php?action=nyCD&titlar=OK");
	exit;
	}	
}
Medlem sedan apr. 2002830 inlägg
#2

Vet inte om det kan bero på det, men testa att sätta den absoluta sökvägen till mappen istället...

// Nippe

Medlem sedan juni 20006 031 inlägg
#3

Gjorde ingen skillnad, måste vara något annat.

Medlem sedan apr. 2002830 inlägg
#4

Men du har alltså testat om du med PHP kan skriva till den mappen?

Annars så kan det ju vara att din syntax är fel på imagejpeg "int imagejpeg ( resource image [, string filename [, int quality]])" står det på http://se.php.net/manual/sv/function.imagejpeg.php

Kanske kan hjälpa dig!

Medlem sedan juni 20006 031 inlägg
#5

Japp, jag har testat att skriva till mappen och det fungerar.

Har ändrat till

imagejpeg ($bild_skapa, $mapp, 100);

men det hjälpte inte heller.

Medlem sedan apr. 2002830 inlägg
#6

imagejpeg ($bild_skapa, $mapp, 100);

där du skrivit $mapp nu skall det enl. php specifikationerna vara filnamnet på bilden. Och det är det ju inte, så testa att köra filnamnet där!

Har tyvärr inte GD installerat på min dator så jag kan inte testa själv :(

// Nippe

Medlem sedan juni 20006 031 inlägg
#7

Ok, nu har jag lyckats med att göra en thumbnail. Tyvärr så blev den helt svart, så jag får nog jobba vidare lite mer. :)

Medlem sedan juni 20006 031 inlägg
#8

Nu funkar det:

$bild_kalla = imagecreatefromjpeg($file['tmp_name']);
$bild_skapa = imagecreatetruecolor($bildbredd, $bildhojd);
imagecopyresampled ($bild_skapa, $bild_kalla, 0, 0, 0, 0, $bildbredd, $bildhojd, $storlek[0], $storlek[1]);
imagejpeg ($bild_skapa, $mapp.cd_.$file['name'], 100);
imagedestroy ($bild_skapa);

Kanske ska lägga till så det funkar med gif också. Får se om jag orkar. ;)

Medlem sedan apr. 2002830 inlägg
#9

strålande! Synd bara att GD-liben jag kör inte har stöd för jpeg just nu :(

Medlem sedan juni 20006 031 inlägg
#10

Ja, jag läste den andra tråden. Men du kan ju iaf ha gif och png.

Medlem sedan apr. 2002830 inlägg
#11

Japp, får leka med det tills på måndag när personalen på webhotellet kommer in igen!

252 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)