Hey,

Ik heb een upload site gemaakt om foto's te kunnen uploaden. Deze werkt perfect alleen heb ik een probleem bij het downloaden of weergeven van een geupload plaatje.

Ik krijg in mijn scherm teksten als

"GIF89aɐÄÀÀÀ€€€@@@ððð``` 000ÐÐÐ ààà°°°pppPPPÿÿÿ!ù,ɐÿ $Ždižhª¢ ±¾p,›Àlßx®Ï@±ÿ@B,:ÂC @:Q‹ÁâI­RAÀe=YnwL¾´#!.Ï CúQsÛï)x¾ 0šx& rs Š‹|~•T•“hiŒ¡x {¦§¨›©©R¢°x_­´µ¶Zm±»d=·¿À|[¼ÅwqÁÊ©‰ÆÏx †ËÊkºÐÙ6˜ “ßàáßÕ¿ âꓘ•ØÚ‹ ¬æ÷øÁ«é€ðc™”ËG° 9 þü;‚`A)ƒ#.Cçl!iÔ$jÜìšEÈ2é[»“(Ûÿ%i®@Ê—˜ÀE¸ÌåG (3P`€w9Ý3P'€ 83À榈YÀÖøs’ÀÜ @0˜6’ØB¨·<Žª ÔŒ¿riSà m€©c°¬åÇ´$€€f^¯w(ƒ[l­O¼(ý‹5nGF†i5hì†l-„ñ,®5%T¿­ÇÃëªb(˵̆"ÐöVçh SȬˆ0^Ÿo LõWƒb~¾Y6í'¨[í5ö‹H1=·¨¶¢Ó–^h±Q€V½–ô.ÝóN/FZ{¶ð­UAßjüŽã:ÊŸÚŽ„· ö©ŠÁjy c_ ò™ò 40€ÿûEçÞX¸fÄ|ØDè§­¥ñ[Z÷`Ué6aq°|/`øˆ†6(Àþe•Ý) ¸Bp· "

te zien.

Ik gebruikk het volgende script om de data uit de database te halen:

<?php
if(!empty($_GET['id']))
{
$id = $_GET['id'];
include("connection.php");
$sql = "SELECT name,type,length,content FROM foto WHERE id = '$id' ";
$result = mysql_query($sql) or die(mysql_error());
list($name, $type, $size, $content) = mysql_fetch_array($result);

header ("Cache-control: private");
header ("Content-Disposition: attachment; filename=$name");
header ("Content-length: $size");
header ("Content-type: $type");
echo $content;
mysql_close($db);
}
else
{
echo "geen foto gevonden";
}
?>

Kan iemand mij helpen bij het zoeken naar de fout of iets dergelijks??

Greetz MUNKY

FF alstoevoeging mijn upload script. misschien dat het daar mee te maken kan hebben.

<?php
if($_FILES['foto']['size'] == 0)
{
echo "Er is een probleem opgetreden.";
}
else
{
$fileName = $_FILES['foto']['name'];
$tmpName = $_FILES['foto']['tmp_name'];
$fileSize = $_FILES['foto']['size'];
$fileType = $_FILES['foto']['type'];
$fp = fopen($tmpName, "rb");
$content = fread($fp, filesize($tmpName));
$content = addslashes($content);
fclose($fp);
$bijschrift = $_POST['bijschrift'];
if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
}
$sql = "INSERT INTO foto VALUES('','$fileName','$fileType','$fileSize','$content','$bijschrift')";
mysql_query($sql) or die(mysql_error());
echo "De foto $fileName is opgeslagen in de database.";
}
?>
Het moet wel kunnen dacht ik om een foto in je database te zetten maar dat i niet het handigste.

je kunt beter het pad en naam van de foto in de database zetten en die er uithalen
zet deze header eens erbij.je moet wel gif aanpassen naar het formaat
[code]
header('Content-Type: image/gif');
[quote=koen verschueren schreef op 31.05.2006 15:04]zet deze header eens erbij.je moet wel gif aanpassen naar het formaat

 header('Content-Type: image/gif');[/quote]


Hij haalt automatisch al het content-type uit de database op en slaat deze op in de variabele $type
Het is simpelweg niet efficient om een foto in een database te zetten. Veel slimmer, efficienter en sneller is het om die foto gewoon op een fileserver te zetten en een uniek id in de database te schrijven.
Het zal vast wel sneller, efficienter en slimmer zijn om ze in een map op te slaan maar het moet toch mogelijk zijn het werkend te krijgen. Ik ben namelijk voor school aan een opdracht bezig waar dit toch wel een vereiste is vandaar dat ik het op deze manier doe.

Misschien als toevoeging is dat ik het wel met de functie addslashes in de database heb gezet. Heeft dit er misschien nog mee te maken dat het niet wil lukken???

Reageren