stian90_2 Skrevet 13. mars 2006 Del Skrevet 13. mars 2006 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
CruellaDeVille Skrevet 13. mars 2006 Del Skrevet 13. mars 2006 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
stian90_2 Skrevet 14. mars 2006 Forfatter Del Skrevet 14. mars 2006 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 =) Lenke til kommentar
CruellaDeVille Skrevet 14. mars 2006 Del Skrevet 14. mars 2006 (endret) Jeg trenger ikke lagre bilde i databasen, trenger bare lagre bilde navet og filbane i databasen. F.eskimages/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 14. mars 2006 av CruellaDeVille Lenke til kommentar
stian90_2 Skrevet 14. mars 2006 Forfatter Del Skrevet 14. mars 2006 Takk, skal teste den senere, reporterer om jeg ikke får noe til. Men ser veldig bra ut, takk for fin fint svar =) Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå