Gå til innhold

BLOB(bildefil) i et nyhetssystem


Anbefalte innlegg

Skrevet

Driver å prøver meg på å lage et nyhetssystem, og vil ha med bilde i teksten og tenkte da å lagre bilde i mysql-databasen.

 

Jeg har laget et nyhetssystemet med id, tittel, beskrivelse, fulltekst før, men er litt usikker på framgangsmåten nå som jeg skal ha med et bilde.

 

Poenget er da at det bilde som blir lastet opp skal komme som en <img> når man ser fulltekst(les mer, hele historien o.l.).

 

Har vell sett for meg en slik tabell:

| id | tittel | beskrivelse | tekst | bilde |

 

Noen som har et eksempel om hvordan jeg burde gå fram med dette? Er veldig usikker på hvordan jeg skal få bilde mitt automatisk inn i fulltekst når jeg oppretter en ny nyhet.

Videoannonse
Annonse
Skrevet
Tørr jeg spørre hvorfor?

Fordi det går mye raskere å hente informasjon om hvor filen ligger, enn å hente hele bildet.

 

Så istede for å lagre hele bildet i databasen, lagrer du heller informasjonen om hvor bildet befinner seg.

Skrevet (endret)

Hvis bildet er lasta opp så settes bildenavn inn i et felt, f. eks fila heter bilde_1.png og da settes det navnet i databasen.

Fila bilde_1.png ligger i mappa uploads/

 

Og så sjekker du om bilde er fylt inn eller ikke når du henter ut igjen fra databasen på en eller annen måte, og om det er fylt inn:

<img src="uploads/<?php echo $row['bilde']; ?>" alt="Bilde" />

 

Og så må du sikkert ha en slags sikkerhet rundt der du henter ut bildet, men siden jeg skada fingeren min i går prøver jeg å skrivelitt lite siden jeg får så vondt

 

Edit:

Sånn gjør iallfall jeg det, og det er vel bedre enn å laste bildene inn i phpmyadmin..tar vel mer database plass vil jeg tro

Endret av Anders Moen
Skrevet

Har nå en slik legg_til_nyhet.php:

 

 

 

<?php

require_once('../config.inc.php');

if (!isset($_POST['submit']))
{
?>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">

	<label for="title">Tittel:</label>
	<input type="text" name="title" />
	<br/>

	<label for="date">Dato:</label>
	<input type="text" name="dato" />
	<br/>

	<label for="content">Tekst:</label>
	<textarea name="content" cols="40" rows="10"></textarea>
	<br/>

	<input type="submit" name="submit" value="Legg til" />
</form>

<?php	}

else
{

db_connect();

$query = "INSERT INTO turne_news(id, title, shorttxt, content) VALUES('', '$title', '$dato', '$content')";
mysql_query($query) or die ("Kunne ikke legge til i databasen. " . mysql_error());

db_logout();
happy_msh();

}
?>

 

 

Og en ledig tabell som heter 'picture'. Men kan noen gi meg et eksempel på hvordan jeg kan få implementert et bilde der hvor adressen til bilde blir lagret i 'picture' raden?

 

 

Har et script som laster opp bilder her(hvis det kan gjennbrukes enkelt).

 

 

<form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<!--	<label for="userfile" name="inputfil">Velg fil</label> -->
<input type="file" name="userfile"><br/>
<input type="submit" value="Upload!">
</form>

<?php

$path = "files/";
$max_size = 20000000;
$file = $HTTP_POST_FILES['userfile'];

if (is_uploaded_file($file['tmp_name']))
{
if ($file['size'] > $max_size)
{
	echo "Filen er for stor";
	exit;
}

if (($file['type'] == "image/gif") || 
	($file['type'] == "image/pjpeg") || 
	($file['type'] == "image/jpeg") || 
	($file['type'] == "image/png"))
	{
		if (file_exists($path . $file['name']))
		{
			echo "Filen finnes allerede fra før.";
			exit;
		}

		$res = copy($file['tmp_name'], $path . 
		$file['name']);

		if (!$res)
		{
			echo "Klarte ikke å laste opp fil.";
			exit;
		}

		else
		{
			echo "Opplastning vellykket!";				
		}

	}

	else
	{
		echo "Feil filtype";
		exit;
	}
}

?>

 

 

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...