Bestand uit database halen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jeroen J

Jeroen J

20/02/2008 23:05:00
Quote Anchor link
Jojo,

Ik heb een tutorial over het uploaden van een bestand en het downloaden van een bestand uit db gelezen

Het uploaden gaat (na wat geprul), maar bij het downloaden geeft hij ipv de foto een hele hoop tekens (de content van de foto)

dit is het script om het te uploaden

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
include("config.php");
?>

<form action="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_SERVER["PHP_SELF"];?>
" enctype="multipart/form-data" method="post">
<input name="file" type="file" /><input type="submit" value="Uploaden!" /></form>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
if($_SERVER["REQUEST_METHOD"]=="POST"){
//Controle door middel van posten
// we willen het bestand open zie php functies!

if(!@fopen($HTTP_POST_FILES[file][tmp_name],"r")){
echo "Oeps een foutje";
//Als het open van het bestand niet lukt krijg de error anders gaan we verder met het uitlezen
}else{
$fp = @fopen($HTTP_POST_FILES[file][tmp_name],"r");


$content = fread($fp,filesize($HTTP_POST_FILES[file][tmp_name])); /* eerst de inhoud van het bestand uitlezen */
          fclose($fp);


 /* bestand sluiten */
/*alles is klaar we gaan nu alles in de database opslaan. Na afloop laten we de url zien om de image nog te kunnen op vragen.*/

$sql = "INSERT INTO images SET name='" . $HTTP_POST_FILES[file][name] . "', type='" . $HTTP_POST_FILES[file][type] . "', length='" .filesize($HTTP_POST_FILES[file][tmp_name]) . "', content='" .addslashes($content)."'";
        mysql_query($sql) or Die(mysql_error());

          $sql = "SELECT * FROM images ORDER BY id ASC LIMIT 1 ";
        $query = mysql_query($sql);
        $array = mysql_fetch_array($query);
          mysql_query($sql);

          print"Your image is succesfully uploaded to te server and saved in our database. If you             want to request the image use this link:<br />     http://localhost/PHP%20Site/foto/script/image.php?id=".$array['id']." ";
// alles even printen
}
}
else{
echo "error";
}


?>


dit is het script om het terug boven te halen
(hier zit de fout denk ik)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
/* image.php */
if (!empty($_GET['id'])) {
include("config.php");
//Haal gegevens op uit de db  
$sql = "SELECT type,length,content FROM images WHERE id = '" .$_GET['id']. "' LIMIT 1";
  $result = @mysql_query($sql) or Die(mysql_error());
  while ($row = mysql_fetch_array($result)) {
    header("Content-Length: " . $row[length] . "\n Content-Type: image/jpeg ");
    echo "". $row[length] ."";
    echo "" . $row[type] . "";
    echo "" . $row[content] . "";
//wanneer de gegevens zijn opgehaald echo alles!
  }
  mysql_close($db);
}

else{
echo"jaja".$_GET['id']."blabla";
}

?>
 
PHP hulp

PHP hulp

25/11/2024 04:14:18
 
- SanThe -

- SanThe -

20/02/2008 23:11:00
Quote Anchor link
Je stopt toch geen plaatjes in een database.
 
Lode

Lode

20/02/2008 23:55:00
Quote Anchor link
Inderdaad... geef me 1 goede reden om uberhaupt een bestand binair of base64 ofzo wat dan ook in een database te zetten?

Niet doen!!!!!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.