![]() |
Förminska bilder
Håller på med ett projekt och har stött på problem!
Det är så att jag skulle vilja förminska bilderna vars url finns lagrad i databasen innan de visas på webbsidan. Jag har hittat en kod som fungerar när det gäller bildförminskningen men den fungerar inte när jag testar getimagesize() på urlen som hämtats i databasen. Urlen är en lagrad som en sträng i databasen, det är jag säker på. Teckenkodningen i databasen o php-scriptet är densamma. Strängen ser ut som den ska med dubbelfnuttar o så. Någon som vet eller har något tips? Koden: function visa_bilder($tabell) { unset($_GET['tbl']); require_once ("databas.inc"); $sql = "SELECT * FROM $tabell;"; $sql_result = mysql_query ($sql) or die ("Query error"); while ($row = mysql_fetch_assoc ($sql_result)) { $bild = "\"" . $row['bild'] . "\""; $width = 120; $height = 120; /*Det är här det inte fungerar... $myPhoto får inget värde att lagra... o felmeddelandet lyder: Warning: getimagesize("xxxxx/ek0020bwmini.jpg ") [function.getimagesize]: failed to open stream: No such file or directory in xxxxxx/photoGallery.php on line 34*/ $myPhoto = getimagesize($bild); $width = $myPhoto[0]; $height = $myPhoto[1]; $target = 120; if ($width > $height) { $percentage = ($target / $width); } else { $percentage = ($target / $height); } $width = round($width * $percentage); $height = round($height * $percentage); echo "<li class=\"thumbbox\"><a href=\"" . $row['bild'] . "\" rel=\"lightbox[$tabell]\"> <img src=\"" . $row['bild'] . "\" alt=\"" . $tabell . "\" title=\"" . $tabell . "\" width=\"" . $width . "\" height=\"" . $height . "\"/></a><p class=\"bildtext\">" . $row['beskrivning'] . "</p></li>"; } echo "</ul>"; } |
använda fullständig sökväg kanske?
|
Ligger bilden på din egen server?
Se till att använda fullständig sökväg ifrån rooten, det löser många problem! Prova: $bild = '/' . $row['bild']; En bildsökväg har inte slash på slutet.. EDIT: Såg inte det extra " som inte ska vara med.. hnn nedan gjorde det! |
Prova bild med:
$bild = $row['bild']; eller $bild = '/' . $row['bild']; |
$bild = "\"" . $row['bild'] . "\""; ger en hel url med http:// till /ek0020bwmini.jpg, jag har bara utelämnat hela sökvägen här av säkerhetsskäl, $bild ger en fullständig sökväg.
"En bildsökväg har inte slash på slutet..." = slashen med fnuttar i slutet är för att lägga på dubbelfnuttar på urlen |
Citat:
Har du överhuvudtaget provat att du har rätt sökväg med t.ex. file_exists()?? |
funktionen getimagesize() vill ha bildens sökväg inom dubbelfnuttar, det är ingen tvekan om att filen existerar då den används utan problem på andra ställen i scriptet...
|
Citat:
getimagesize('bilden.png'); Så du bör ta bort dubbelfnuttarna från $bild. |
om inte en http-adressen funkar är det väl blockerat i php.. då behöver du den fullständiga sökvägen till filen i filsystemet.. som på ett linux webhotell kanske är: /home/users/xxx/public_html/images/...
om scriptet ligger i rooten på webhotellet kör du: $path = dirname(__FILE__).'/'; $myPhoto = getimagesize($path.$row['bild']); |
Uppenbarligen så har du fel sökväg. Skriv ut resultatet och se efter att det verkligen stämmer. Det är det enklaste och bästa sättet att felsöka i de fall det inte handlar om parse-fel.
Varför vill du ändra storleken i realtid förresten? |
Tack för alla förslag och tips, även om de inte hjälpte direkt.
Nu är det en programmerare som tittar på det hela, som inte heller hittar lösningen, så hon skall försöka köra något helt annat istället. tartareandesire: det är ett bildgalleri som skall skapas, kunden skall bara behöva ladda upp EN bild till servern. Det skall finnas en mindre bild på sidan som sen förstoras när någon klickar på den. Fast det ursprungligen bara är en bild som kunden laddat upp. |
Citat:
Du bör förresten döpa om "databas.inc" då det är en stor säkerhetsrisk såvida den inte skyddas på annat vis. |
Citat:
Jo sökvägarna är kollade och dom stämmer. Det har du ju rätt i, ett namnbyte på den är nog bäst. |
Alla tider är GMT +2. Klockan är nu 02:40. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson