![]() |
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? |
Alla tider är GMT +2. Klockan är nu 09:23. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson