Hallo allemaal,

ik heb even een vraag, ik heb op internet een script gevonden waarmee je jpg's kunt uploaden in een DB. Dit script lijkt erg op wat ik moet hebben, ik moet nl. PDF bestanden uploaden naar een DB.

Het is me nu gelukt om het bestand te uploaden en dus in de DB te plaatsen, maar... hoe kan ik het nu weer uit de DB krijgen...

Het script is alsvolgt (een gedeelte ervan):
<?
if($submitted) {
require("config.inc");
$data = addslashes(fread(fopen($src, "r"), filesize($src)));
$strDescription = addslashes(nl2br($des));
$sql = "INSERT INTO images
(alttext, src, des, filename, filesize, filetype)
VALUES
(\"$alttext\", \"$data\", \"$strDescription\", \"$src_name\", \"$src_size\", \"$src_type\")
";
$result = @mysql_query($sql,$connection) or die("Couldn't execute query.");
$msg = "Thank You $u, the following infromation has been added to the database <br>";

$sql = "SELECT id, alttext FROM images WHERE filename=\"$src_name\"";

$result = @mysql_query($sql,$connection) or die("Couldn't execute query. Load");

while ($row = mysql_fetch_array($result)) {
$id = $row['id'];
$alttext = $row['alttext'];
}
$link = "The html src to this image is <br> img border=\"0\" src=\"image.php?id=$id\" alt=\"$alttext\" <br> <img border=\"0\" src=\"image.php?id=$id\" alt=\"$alttext\">";


echo $msg;
echo $link;
exit;
}
?>


Nu gaat het dus om dit stukje (denk ik):

$link = "The html src to this image is <br> img border=\"0\" src=\"image.php?id=$id\" alt=\"$alttext\" <br> <img border=\"0\" src=\"image.php?id=$id\" alt=\"$alttext\">";

Het is natuurlijk geen img wat ik ga downloaden, daardoor doet 'ie het ook niet.
'k heb het ook al geprobeerd met iets als:
<a href=\"$row->src\" target=nieuw>

maar dan krijg ik allemaal vreemde tekens te zien..

Kan iemand mij helpen?

Bvd. Jochem
waarom zou je een jpeg pdf of wat dan ook voor groots in je database zetten? het neemt nog meer ruimte in beslag dan dat je het zo op je hd opslaat...

je database gaat een stuk sneller lopen en dat lijkt me ook niet de bedoeling...
het moet worden opgeslagen in een DB aangezien ik aan het bestand ook een paar regels wil koppelen met bijv. uploaddatum, onderwerp van het bestand, ge-upload door enz..

De bestandsnaam is variabel dus ik weet niet hoe ik op een andere manier een koppeling kan maken tussen het bestand en de gegevens die ik wil toevoegen?
je zorgt gewoon dat het volgende in de database komt:

id, upload_date, subject, door, filename

het veld filename komt overeen met de naam van de pdf.. en je upload de pdf file gewoon in een map /pdf/ ..

een groot nadeel van jpg's en pdf's in de database is dat de database veel te groot wordt.. dit heeft weer invloed op je laadtijden..

ook als je straks van server wisselt, en je een db dump moet maken gaat dat met moeite.. als je dan uiteindelijk een database dump hebt heb je weer heel veel moeite met het terug zetten van de dump omdat phpmyadmin bijvoorbeeld niet meer dan zoveel kb maximaal kan trekken.. dus als je je bestandje upload via phpmyadmin weigert hij deze omdat hij te groot is.. alle sql codes in het veld SQL copy/pasten wil ook niet omdat hij dan 'vastloopt'.. hij kan dat gewoon niet aan :) ik spreek uit ervaring..

ik had een database die vroeger was gemaakt met allemaal jpgtjes van 500kb erin.. dump gemaakt was na 3 uren klaar, db dump an 170 mb.. onmogelijk voor mij om terug te zetten.. kon misschien via shell access maar dat had ik niet dus kon de dump niet worden terug gezet..
kijk, daar is base64_encode nou goed voor. (zie functies) Dan kan je files in je db opslaan, ik zal eens een script zoeken, ik weet zeker dat ie er is. (heb ik zelf ooit gebruikt namelijk, en ging razendsnel)
Joo, hebbes, gevonden. Ik heb deze uitgeprobeerd met bestanden tot de 1 mb op een PII 350@392 met 392 Mb en SOL 17.00. PHP4 en mysql versie weet ik niet meer. Het zoeken en weergeven ven jpegs ging echt razendsnel, sneller dan van mn hdd.
http://www.spoono.com/php/tutorials/tutorial.php?id=42

ik neem aan dat pdf ook geen probleem is...
Dankjewel voor jullie reacties!
De oplossing van Bas heb ik nu draaien en die werkt perfect! Dankjewel, 't is een simpele oplossing, maar je moet er maar op komen ;-)

Ook het script van JoRRiZZa ga ik een keer testen!

Reageren