Gå til innhold

Anbefalte innlegg

Hei, jeg har da et lastopp script slik at man kan laste opp bilder.

Men jeg er ikke helt sikker på hvordan man kan hente bildet og lagre bildetnavnet i en database slik at jeg vet at den nyheten/brukeren osv har akuatt det bilde ?

Noen som vet hvordan det gjøres ?

Scriptet ser slik ut nå:

 

<?php
include("config.php");
$navn = $_SESSION['navn'];
$sql23 = mysql_query("SELECT * FROM brukere WHERE navn='$navn' ");
$sql24 = mysql_num_rows($sql23);
$ROW = mysql_fetch_array($sql23);
$mappe = "images/lastopp/";
$allowed_ext = "jpg, gif, jpeg, png, JPEG, JPG,";

$max_size = "25000000"; // 25000 er det samme som 25kb
$max_height = "1024"; // Måles i pixler (px)

$max_width = "1024"; // Måles i pixler (px)

$extension = pathinfo($_FILES['file']['name']);
$extension = $extension[extension];
$allowed_paths = explode(", ", $allowed_ext);
for($i = 0; $i < count($allowed_paths); $i++) {
if ($allowed_paths[$i] == "$extension") {
$ok = "1";
}
}
if ($ok == "1") {
if($_FILES['file']['size'] > $max_size)
{
print "Fila tar for stor plass! " . $max_size . " er max størelse på hvor stor fila kan være!";
exit;
}
if ($max_width && $max_height) {
list($width, $height, $type, $w) = getimagesize($_FILES['file']['tmp_name']);
if($width > $max_width || $height > $max_height)
{
print "Filen er for bred eller/og høy!<br>Max bredde er " . $max_width . "px<br>Max høyde er " . $max_height . "px.";
exit;
}
}

// Alt er OK, derfor laster vi opp filen
if(is_uploaded_file($_FILES['file']['tmp_name']))
{
move_uploaded_file($_FILES['file']['tmp_name'],$mappe.'/'.$_FILES['file']['name']);

}
include("config.php");
$fil = $_FILES["file"];
$sql25 = "UPDATE brukere SET bilde_w='$fil' WHERE navn='$navn' ";
if(mysql_query($sql25)){
echo "Filen ble lastet opp!";
}
} else {
print "Den filen du prøvde å laste opp har en filtype som ikke er lov å laste opp!";
}
?>

 

Det som kommer opp i bilde_w er bare array ?

Noen som vet ?

Lenke til kommentar
Videoannonse
Annonse
Hei, jeg har da et lastopp script slik at man kan laste opp bilder.

Men jeg er ikke helt sikker på hvordan man kan hente bildet og lagre bildetnavnet i en database slik at jeg vet at den nyheten/brukeren osv har akuatt det bilde ?

Noen som vet hvordan det gjøres ?

Scriptet ser slik ut nå:

 

<?php
include("config.php");
$navn = $_SESSION['navn'];
$sql23 = mysql_query("SELECT * FROM brukere WHERE navn='$navn' ");
$sql24 = mysql_num_rows($sql23);
$ROW = mysql_fetch_array($sql23);
$mappe = "images/lastopp/";
$allowed_ext = "jpg, gif, jpeg, png, JPEG, JPG,";

$max_size = "25000000"; // 25000 er det samme som 25kb
$max_height = "1024"; // Måles i pixler (px)

$max_width = "1024"; // Måles i pixler (px)

$extension = pathinfo($_FILES['file']['name']);
$extension = $extension[extension];
$allowed_paths = explode(", ", $allowed_ext);
for($i = 0; $i < count($allowed_paths); $i++) {
if ($allowed_paths[$i] == "$extension") {
$ok = "1";
}
}
if ($ok == "1") {
if($_FILES['file']['size'] > $max_size)
{
print "Fila tar for stor plass! " . $max_size . " er max størelse på hvor stor fila kan være!";
exit;
}
if ($max_width && $max_height) {
list($width, $height, $type, $w) = getimagesize($_FILES['file']['tmp_name']);
if($width > $max_width || $height > $max_height)
{
print "Filen er for bred eller/og høy!<br>Max bredde er " . $max_width . "px<br>Max høyde er " . $max_height . "px.";
exit;
}
}

// Alt er OK, derfor laster vi opp filen
if(is_uploaded_file($_FILES['file']['tmp_name']))
{
move_uploaded_file($_FILES['file']['tmp_name'],$mappe.'/'.$_FILES['file']['name']);

}
include("config.php");
$fil = $_FILES["file"];
$sql25 = "UPDATE brukere SET bilde_w='$fil' WHERE navn='$navn' ";
if(mysql_query($sql25)){
echo "Filen ble lastet opp!";
}
} else {
print "Den filen du prøvde å laste opp har en filtype som ikke er lov å laste opp!";
}
?>

 

Det som kommer opp i bilde_w er bare array ?

Noen som vet ?

5747342[/snapback]

 

Skal du lagre selve filen i databasen? Da må du iallfall lese den inn også.

$fil =
addslashes(fread(fopen($_FILES['file']['tmp_name'], "rb"), filesize($_FILES['file']['tmp_name']))); 

 

Men hvordan du får det ut igjen har jeg ikke fjerneste ide om...

Men hvorfor vil du lagre de i database og ikke i et filsystem?

Lenke til kommentar
Jeg trenger ikke lagre bilde i databasen, trenger bare lagre bilde navet og filbane i databasen. F.esk

images/stian/bilder/bilde2.jpg

 

slik at jeg kan hente det slik

$bilde = $ROW["bilde"];

echo "<img src="$bilde"> eller noe i den duren =)

5750958[/snapback]

 

 

du kan eksempelvis bruke/moderere dette:

<?php
/*
* Tabellen min
* create table whatever(
*	imageID int unsigned auto_increment,
*	imageTitle varchar(100) not null,
*	imageDesc text,
*	fileName varchar(100) not null,
*  fileType varchar(20) not null,
*  primary key(imageID)
*	);
*/
// skriv html-opplastingsskjema
print <<<HTML
<form method="post" action="" enctype="multipart/form-data">
<h4>Legg til bilde</h4>
Bildetittel: <input type="text" name="title"><br />
Beskrivelse:<br />
<textarea cols="30" rows="10" name="desc"></textarea><br />
<input type="file" name="file" value="Last opp fil"><br />
<input type="submit" name="submit" value="Send inn">
</form>
HTML;
// kobler til databasen
mysql_connect('localhost', 'username', 'password') or die("hostfeil: ".mysql_error());
mysql_select_db('database') or die("Databasefeil: ". mysql_error());

// Fil er klar til opplasting
if(isset($_POST['submit'])){
// Mappen hvor bildet skal lagres
$imagedir = 'images/';
// tittel på bilde
$title=$_POST['title'];
// beskrivelse av bilde
$desc = $_POST['desc'];
// filnavn
$filename = $_FILES['file']['name'];
// filtype
$filetype = $_FILES['file']['type'];
// flytter filen til riktig mappe
move_uploaded_file($_FILES['file']['tmp_name'], $imagedir.$filename) or die("feil under flytting");
chmod($imagedir.$filename, 0744);
// setter inn verdier i databasen
mysql_query("insert into tabellen_din (imageTitle, imageDesc, fileName, fileType) values(
 '{$title}',
 '{$desc}',
 '{$filename}',
 '{$filetype}'
 )") or die("Queryfeil: ". mysql_error());
$lastInserted = mysql_insert_id();
}

// eventuell en where-clause, hvis denne er tom vises alle bilder i databasen
$whereClause = "where imageID = $lastInserted";
// spørring
$query = mysql_query("select filename, imageDesc from tabellen_din $whereClause") or die("queryfeil: ". mysql_error());
// bilder skrives ut
while($resultat = mysql_fetch_array($query)){
print ("<img src=\"". $imagedir.$resultat['filename']. "\" alt=\"".$resultat['imageDesc']."\" />");
}
// lukker databasetilkoblingen
mysql_close();

?>

 

Var det noe slikt du tenkte på?

Lenke til script: http://nibbler.no/files/gallery/upload.php

 

Edit: filen upload.php er endret, så sjekk ut lenken istedet for kildekode her

Endret av CruellaDeVille
Lenke til kommentar

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å
×
×
  • Opprett ny...