webForumDet fria alternativet

Warning: imagejpeg()

10 svar · 349 visningar · startad av Pedda

PeddaMedlem sedan juni 20006 032 inlägg
#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;
	}	
}
nkrantzMedlem 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

PeddaMedlem sedan juni 20006 032 inlägg
#3

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

nkrantzMedlem 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!

PeddaMedlem sedan juni 20006 032 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.

nkrantzMedlem 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

PeddaMedlem sedan juni 20006 032 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. :)

PeddaMedlem sedan juni 20006 032 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. ;)

nkrantzMedlem 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 :(

PeddaMedlem sedan juni 20006 032 inlägg
#10

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

nkrantzMedlem sedan apr. 2002830 inlägg
#11

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

125 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)