[PHP/MySQL] Bestandsinformatie opslaan in de DB

Pagina: 1
Acties:

  • FoxzMan
  • Registratie: September 2000
  • Laatst online: 01-03 20:35
Ik wil dat mensen van mijn webserver bestanden kunnen downloaden. Dit doe ik met een 'anti-leech script'.
De bestanden worden niet in de database opgeslagen, maar in een map buiten de webroot, bestandsinformatie (zoals bestandsnaam, bestandsgrootte en bestandsomschrijving ) wordt echter wel in de database bijgehouden.
Om dit te doen gebruik ik het volgende script:
PHP:
1
<?<HTML><HEAD><link rel="stylesheet" type="text/css" href="remain.css"><TITLE>Bestandsinformatie opslaan in de database</TITLE></HEAD><BODY><?phpif ($submit) {    include "config.inc.php";    $data = fread(fopen($form_data, "r"), filesize($form_data));    $result=MYSQL_QUERY("INSERT INTO files ".        "VALUES ('','$form_data_name','$form_data_size','$form_description')");    $id= mysql_insert_id();    print "<p>This file has the following Database ID: <b>$id</b>";    MYSQL_CLOSE();} else {?>    <form method="post" action="fileinfo.php" enctype="multipart/form-data">    File Description:<br>    <input type="text" name="form_description"  size="40" maxlength="150">    <br>File to upload/store in database:<br>    <input type="file" name="form_data"  size="40">    <p><input type="submit" name="submit" value="submit">    </form><?php}?></BODY></HTML>?>

Nu heb ik een probleempje bij grote bestanden (20MB+), want het script moet eerst het bestand naar de webserver kopieren om de info uit te lezen. Dit duurt erg lang.

Is het ook mogelijk om de bestandsinfo op de client-pc te laten uitlezen en dan de info in de database te zetten?

-


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Het is niet mogelijk om bestands informatie op te vragen van bestanden die op de client pc staan (Dat zou een mooie boel worden)..

Maar waarom doe je het mbv een file-upload?? De bestanden staan toch al op de webserver? Waarom laat je de bestandsinformatie niet bepalen door de bestanden die op de server staan?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • FoxzMan
  • Registratie: September 2000
  • Laatst online: 01-03 20:35
De bestanden staan inderdaad ook op de webserver, maar voor een anti-leech script is het makkelijker om bepaalde gegevens uit de database te halen, lijkt mij.

Nu hoef ik met het download script alleen bijv download.php?id=$id op te geven en het bestand wordt met behulp van de databeest verstuurd.

Ik kan ook wel handmatig de gegevens in de databeest zetten, alleen is het makkelijker om dit via een halve fileupload te doen.

Is er mogelijk een andere manier om dit voor elkaar te krijgen ?

-


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Je begrijpt me verkeerd... Die gegevens die je in de DB wil stoppen kun je toch gewoon bepalen adhv de bestanden op de server?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • FoxzMan
  • Registratie: September 2000
  • Laatst online: 01-03 20:35
Op maandag 10 juni 2002 13:40 schreef Janoz het volgende:
Je begrijpt me verkeerd... Die gegevens die je in de DB wil stoppen kun je toch gewoon bepalen adhv de bestanden op de server?
Dus dat ie zeg maar een directory op de server uitleest en aan de hand daarvan de database vult ?

-


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 03-09 15:18

Crazy D

I think we should take a look.

Ik snap je probleem niet zo heel goed eigenlijk ;) Maar je hebt in de admin-gedeelte een fileupload gebakken waarmee je dus files upload (like duh :P). Dan check je op dat moment ook de fileinfo die je wilt opslaan in de db.
Dat dat ff duurt bij een file van 20mb is nogal logisch, ik denk (imho :P) dat dat ook iets teveel van het goede is om via een webformpje te uploaden. Ik denk dat ik zou gaan voor de mogelijkheid om gewoon files te uploaden via het webformpje, en daarnaast een scriptje bak die de files in die dir checkt, en indien er eentje niet bestaat in de db, die toevoegt. Of een formpje bakt om puur de fileinfo toe te voegen, en de file zelf via ftp te uploaden.
Maar de file zal sowieso eerst naar de webserver "gekopieerd" moeten worden, anders staat het niet op de server en is het dus ook niet te downloaden...

Exact expert nodig?

Pagina: 1