Kom ihåg mig?
Home Menu

Menu


Problem med storleksändring på bilder!

Ämnesverktyg Visningsalternativ
Oläst 2006-02-05, 18:05 #1
dannegrun dannegrun är inte uppkopplad
Nykomling
 
Reg.datum: Jul 2004
Inlägg: 39
dannegrun dannegrun är inte uppkopplad
Nykomling
 
Reg.datum: Jul 2004
Inlägg: 39
Hej!

Jag har ett PHP-script som laddar upp bilder och ändrar storleken på dem. Problemet är bara att jag får ett felmeddelande som jag inte kan hitta någon lösning på. Jag har även testat mede imagecopyresized och får samma felmeddelande. Om någon kan hitta felet vore jag jättetacksam!!?

Felmeddelande:
-------------------
Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /home/b/botema/www/adminpic.php on line 89

Warning: imagedestroy(): supplied argument is not a valid Image resource in /home/b/botema/www/adminpic.php on line 91
Filen är uppladdad till servern och informationen är inlagd i databasen!

Kod:
------
$filnamnet = basename($_FILES['filen']['name']); //Filnamnet
$servernamn = $_FILES['filen']['tmp_name']; //Tempfilen på servern
list($filminusext, $ext) = explode(".", $filnamnet);

if ($ext == "jpg") {
$path = dirname(__FILE__);
$uploaddir = $path . '/bilder/brf/';
$uploadfile = $uploaddir . $filnamnet;
$targetfile = $uploadfile;

if (move_uploaded_file($servernamn, $uploadfile)) {
list($width, $height) = getimagesize($uploadfile);

if ($width > $height) {
$forhallande = $height / $width;
} else {
$forhallande = $width / $height;
}

$newwidth = 150;
$newheight = round(abs($newwidth * $forhallande));
$destimg = imagecreatetruecolor($newwidth, $newheight);
imagecopyresampled($destimg,$uploadfile,0,0,0,0,$n ewwidth,$newheight,$width,$height);
imagejpeg($destimg,$targetfile,80);
imagedestroy($uploadfile);
imagedestroy($destimg);
dannegrun är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-02-05, 18:18 #2
elofssons avatar
elofsson elofsson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jul 2004
Inlägg: 881
elofsson elofsson är inte uppkopplad
Mycket flitig postare
elofssons avatar
 
Reg.datum: Jul 2004
Inlägg: 881
Verkar inte som att scriptet hittar bilden. Rätt sökväg?
elofsson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-02-07, 20:33 #3
dannegrun dannegrun är inte uppkopplad
Nykomling
 
Reg.datum: Jul 2004
Inlägg: 39
dannegrun dannegrun är inte uppkopplad
Nykomling
 
Reg.datum: Jul 2004
Inlägg: 39
Japp.
Alla sökvägar till filen som jag hämtar med koden:
$path = dirname(__FILE__);
$uploaddir = $path . '/bilder/brf/';
$uploadfile = $uploaddir . $filnamnet;
är rätt. Ändå verkar det vara den filen som felmeddelandena gäller. En fil med rätt storlek skapas,

$destimg = imagecreatetruecolor($newwidth, $newheight);

alltså den mindre storleken.
Men den utför inte raden med imagecopyresampled vilket gör att när raden

imagejpeg($destimg,$targetfile,80);

körs kopieras det bara in en svart bild på rätt plats med rätt filnamn. Så på den raden fungerar ju filen och sökvägen ($targetfile)!?

Har även testat med $targetfile i imagecopyresampled och $uploadfile i imagejpeg(). Vill sig ändå inte...
dannegrun är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-02-07, 21:54 #4
PeterM PeterM är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 56
PeterM PeterM är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 56
Variabeln $uploadfile är ju bara sökväg och filnamn på filen du vill behandla. Du måste använda imagecreatefromjpeg() eller motsvarande för att skapa en bildresurs att arbeta med.
PeterM är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-02-07, 21:54 #5
elofssons avatar
elofsson elofsson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jul 2004
Inlägg: 881
elofsson elofsson är inte uppkopplad
Mycket flitig postare
elofssons avatar
 
Reg.datum: Jul 2004
Inlägg: 881
Verkar ju alltså som att scriptet inte hittar bilden som du laddar upp, då skapas en svart/tom bild istället. Kör en kontroll vid uppladdning så att du är säker på att källbilden finns där. Se följande för att köra en felkontroll på uppladdningen:
http://se.php.net/manual/en/features.file-...load.errors.php
elofsson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-02-07, 22:16 #6
dannegrun dannegrun är inte uppkopplad
Nykomling
 
Reg.datum: Jul 2004
Inlägg: 39
dannegrun dannegrun är inte uppkopplad
Nykomling
 
Reg.datum: Jul 2004
Inlägg: 39
Underbart!!!!
Att det skulle vara en så liten sak...
Otroligt mycket tack!!

Lade till raden
$targetfile = imagecreatefromjpeg($uploadfile);
innan raden med imagecopyresampled och använde sedan $targetfile framöver.

Ska kika lite mer på error-hanteringen också. Verkar vara en enklare och lite smartare hantering av fel.
dannegrun är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-02-07, 22:47 #7
elofssons avatar
elofsson elofsson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jul 2004
Inlägg: 881
elofsson elofsson är inte uppkopplad
Mycket flitig postare
elofssons avatar
 
Reg.datum: Jul 2004
Inlägg: 881
Citat:
Originally posted by dannegrun@Feb 7 2006, 23:16
Ska kika lite mer på error-hanteringen också. Verkar vara en enklare och lite smartare hantering av fel.
Fint. Då var mitt inlägg inte postat i onödan även om det inte var rätt lösning på ditt problem.
elofsson är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-02-08, 20:35 #8
vco-systemss avatar
vco-systems vco-systems är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2004
Inlägg: 774
vco-systems vco-systems är inte uppkopplad
Mycket flitig postare
vco-systemss avatar
 
Reg.datum: Dec 2004
Inlägg: 774
Citat:
Originally posted by dannegrun@Feb 5 2006, 19:05
list($filminusext, $ext) = explode(".", $filnamnet);

if ($ext == "jpg") {
Bättre att använda kolla filtypen istället för filändelsen.

Kod:
switch($_FILES['filen']['type']) {
	case 'image/jpeg':
	case 'image/pjpeg':
 $targetfile = imagecreatefromjpeg($uploadfile);
 break;
	case 'image/png':
	case 'image/x-png':
 $targetfile = imagecreatefrompng($uploadfile);
 break;
	default:

}
vco-systems är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-02-08, 21:30 #9
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Det finns nackdelar med detta som är nämnda här tidigare.

http://www.webmasternetwork.se/f2t11485.html
Jonas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-02-08, 22:46 #10
dannegrun dannegrun är inte uppkopplad
Nykomling
 
Reg.datum: Jul 2004
Inlägg: 39
dannegrun dannegrun är inte uppkopplad
Nykomling
 
Reg.datum: Jul 2004
Inlägg: 39
Det där var intressant läsning.
Tackar!
dannegrun är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 21:31.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017