webForumDet fria alternativet

Skapa bildlänk

11 svar · 950 visningar · startad av silfver

silfverMedlem sedan apr. 200312 679 inlägg
#1

Jag använder den här koden för att skriva ut en bild:

<?php
error_reporting(E_ALL);

ini_set("display_errors", "1");
mysql_connect("","","")
	or die("Could not connect: " . mysql_error());
mysql_select_db("");
$result = mysql_query("SELECT image FROM pixelpost2_pixelpost WHERE datetime < NOW() ORDER BY datetime DESC LIMIT 1") or die('Err: ' . mysql_error());

if(mysql_num_rows($result) > 0){

$data = mysql_fetch_array($result);

echo $data['image'];
}

mysql_free_result($result);
?>

Problemet är att bilden skrivs ut som en hemsida, med en img-tagg. Jag vill skapa en länk som går direkt till jpg-bilden. Så som de bifogade filerna fungerar här på wF. Hoppas ni förstår vad jag menar.

Jag vill kunna skriva t.ex. så här:

<img src="latest-post.php" />

Hur ska jag göra?

silfverMedlem sedan apr. 200312 679 inlägg
#2

Nu vet jag inte hur sånt här fungerar riktigt. Men man kanske kan skapa någon slags querystring, latest-post.php?bild=latest eller nåt. Det borde väl inte vara så jättesvårt, eller?

PeddaMedlem sedan juni 20006 032 inlägg
#3

latest-post.php

<?php 
header("content-type: image/jpeg");

mysql_connect("","","")
    or die("Could not connect: " . mysql_error());
mysql_select_db("");
$result = mysql_query("SELECT image FROM pixelpost2_pixelpost WHERE datetime < NOW() ORDER BY datetime DESC LIMIT 1") or die('Err: ' . mysql_error());

if(mysql_num_rows($result) > 0){

$data = mysql_fetch_array($result);
$picture = $data['image'];
echo imagejpeg($picture);
imagedestroy($picture);
} 			
?>

Koden är inte testad då jag inte har någon server på den här datorn.

Länken till bilden blir som du skrev innan:
<img src="latest-post.php" />

silfverMedlem sedan apr. 200312 679 inlägg
#4

Pedda skrev:

latest-post.php

<?php 
header("content-type: image/jpeg");

mysql_connect("","","")
    or die("Could not connect: " . mysql_error());
mysql_select_db("");
$result = mysql_query("SELECT image FROM pixelpost2_pixelpost WHERE datetime < NOW() ORDER BY datetime DESC LIMIT 1") or die('Err: ' . mysql_error());

if(mysql_num_rows($result) > 0){

$data = mysql_fetch_array($result);
$picture = $data['image'];
echo imagejpeg($picture);
imagedestroy($picture);
} 			
?>

Koden är inte testad då jag inte har någon server på den här datorn.

Länken till bilden blir som du skrev innan:
<img src="latest-post.php" />

Tack för att du tar dig tid Pedda! Din kod visar ingen bild just nu. Eller, en bildruta kommer upp, men den hittar inte bilden. Några tips?

PeddaMedlem sedan juni 20006 032 inlägg
#5

Får du hela sökvägen till bilden ifrån databasen eller bara filnamnet?

colioneMedlem sedan juni 20014 421 inlägg
#6

Hur ser datan i databasen ut? Jag har lite svårt att tror att bilderna lagras som en blob i den nämligen...det är väl snarare så att du kan plocka ut ett id och en sökväg till en bild i databasen?

Isf måste du första leta fram vilken som är den senaste bilden i databasen som du gör med sql-satsen och sedan läsa filen från serverns disk och spotta ut den. :)

Jag kan iof ha fel, har aldrig jobbat med pixelpost.

silfverMedlem sedan apr. 200312 679 inlägg
#7

Okay, bilden ligger här: http://www.silfvercreations.com/photoblog/images/20070925185111_felix.jpg
Så man måste kanske mata in http://www.silfvercreations.com/photoblog/images/ någonstans i koden?

PeddaMedlem sedan juni 20006 032 inlägg
#8

Hrmm, jag är visst trött.
Testa den här koden

<?php
header("content-type: image/jpeg");

mysql_connect("","","")
    or die("Could not connect: " . mysql_error());
mysql_select_db("");
$result = mysql_query("SELECT image FROM pixelpost2_pixelpost WHERE datetime < NOW() ORDER BY datetime DESC LIMIT 1") or die('Err: ' . mysql_error());

if(mysql_num_rows($result) > 0){

$data = mysql_fetch_array($result);
$picture = "photoblog/images/" . $data['image'];
$imgInfo = Array();
$imgInfo = getimagesize($picture);
$pic = imagecreatetruecolor($imgInfo[0], $imgInfo[1]);
$picture = imagecreatefromjpeg($picture);
imagecopyresampled($pic, $picture, 0, 0, 0, 0, $imgInfo[0], $imgInfo[1], $imgInfo[0], $imgInfo[1]);
echo imagejpeg($pic);
imagedestroy($pic);
}             
?>
silfverMedlem sedan apr. 200312 679 inlägg
#9

Det fungerar prima helt underbart! Tack så mycket Pedda, du är kung! :bire (y)

PeddaMedlem sedan juni 20006 032 inlägg
#10

Men frågan är egentligen varför du vill göra så?
Att skapa bilder så här brukar ju användas när man skapar nya bilder t.ex grafer eller om man vill skala storlek, lägga på text mm.
Men i ditt fall så gör vi bara en exakt kopia.
Egentligen så behöver man ju inte då använda GD utan man kan lika gärna ha din första kod i en egen fil och ändast ändra din echo till att skriva ut hela img taggen och sen köra en include där bilden ska visas.

silfverMedlem sedan apr. 200312 679 inlägg
#11

Jag vill posta min bild på facebook, och facebook godkänner bara länkar till bilden, inte img-taggar, och med hjälp av din kod så kommer den här bilden alltid att visa min senaste bild från min flog. Förhoppningsvis, jag vet inte ifall det fungerar än med uppdateringar. :)

PeddaMedlem sedan juni 20006 032 inlägg
#12

Ok, då förstår jag varför. (y)

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