WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   gif-bilder i php (https://www.wn.se/forum/showthread.php?t=15391)

Conth 2006-08-03 17:03

Har tänkt att flytta in mina bilder i databasen som BLOB (isf att ha dom externt och lagra filnamnen i databasen)

Blir inte riktigt klok på hur jag ska få min gif-bild att visas ordentligt. Har testat och letat men nu ger jag upp och frågar om hjälp... Känns som jag missar något självklart.

Om jag gör såhär:

$fn = "images/ham2.gif";
$fp = fopen("$fn","r");
$bvar = fread($fp, filesize("$fn"));
fclose($fp);
Header("Content-type: image/gif");
print $bvar;

...Så visas min bild snyggt och prydligt.

MEN - jag vill ju visa den i ett sammanhang.
T.ex:
$fn = "images/ham2.gif";
$fp = fopen("$fn","r");
$bvar = fread($fp, filesize("$fn"));
fclose($fp);
echo "
Min bild:
";

Header("Content-type: image/gif");
print $bvar;

innan bilden - men då blir det bara skit....
Hur kombinerar jag text och bild när jag har bild-binären i en variabel???

najk 2006-08-03 17:18

Du kan inte lägga in bilden i ett textflöde på detta sätt du önskar, du får helt enkelt skriva ut bilden som bild, och anropa den ifrån ett html (php?) dokument.

Mickee 2006-08-03 17:30

precis som najk säger så måste bildfilen vara en helt egen fil (eller nej det behöver den inte egentligen, kan ju vara samma fil som anropas men gör olika saker).

Ett tips är att använda detta isamband med att du kollar så att reffern är rätt, tex någon vill se bild1.php men får det måste dem kolla på bildsida1.php. och då sätta att om du vill titta på bild1.php direkt så bara du redictas till bildsida1.php, detta för att dem ska tex se din reklam eller bara inte sno din bw.

mvh micke

Conth 2006-08-03 17:54

OK, tack för svar.
Då får jag skippa detta med att lägga mina bilder i en BLOB.

koala 2006-08-03 19:00

Citat:

Originally posted by Conth@Aug 3 2006, 17:54
OK, tack för svar.
Då får jag skippa detta med att lägga mina bilder i en BLOB.


Det ska du inte behöva. Problemet var att du skriv ut text innan du skickade en header. Dessutom blir data korrupt om du tar med annan data än innehållet i gif-filen. Gör så här (ungefär):

Kod:

// bild.php:
$fn = "images/ham2.gif";
$fp = fopen("$fn","r");
$bvar = fread($fp, filesize("$fn"));
fclose($fp);
// Eller byt ut ovanstående mot $bvar = "hämta_bild_från_databas($bild_id)";
Header("Content-type: image/gif");
print $bvar;

Kod:

// innehall.php:
echo '<br /> Min bild: <br />';
echo '<img src="bild.php?id=123" />';


grazzy 2006-08-03 19:51

Att ha bilder i en databas är dumt. Lagra filnamnet istället. Det finns en miljard anledningar. Varav binär/ascii-konverteringar är en.

koala 2006-08-04 00:54

Citat:

Originally posted by grazzy@Aug 3 2006, 19:51
Att ha bilder i en databas är dumt. Lagra filnamnet istället. Det finns en miljard anledningar. Varav binär/ascii-konverteringar är en.

Generellt ja, men ibland kan det vara lättare att ha allt i en databas, t ex om man har hyfsat små bilder, och inte orkar skapa en katalog med skrivrättigheter dit man kan ladda upp sina bilder... ;) Dessutom blir det en liten aning smidigare när man t ex ska radera bilder från admininterfacet osv, ifall man bara behöver manipulera objekt som sparas till databasen... Dock är det naturligtvis inte många minuters extraarbete att göra en motsvarande lösning där man sparar sökvägen till bilden istället, och prestandavinsten blir förmodligen stor om man har många besökare...


Alla tider är GMT +2. Klockan är nu 17:55.

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