Vraag & Antwoord

Webprogrammeren & scripting

[PHP] - virtuele bestanden downloaden

7 antwoorden
  • De titel is misschien niet duidelijk genoeg, ik zou niet weten hoe ik het anders moet verwoorden. Het zit als volgt: Je kan een bestand uploaden naar mijn site. De info (naam, locatie, ...) van het bestand wordt in een databank gestoken, en het bestand zelf krijgt een nummer en wordt in een apparte map (Files/) gestoken onder de naam nummer.DAT. Wanneer iemand een bestand wilt openen dan zal hij het *.DAT bestand openen onder de echte naam die hij uit de databank haalt (dit gebeurt met een heleboek headers). Nu zou ik ervoor willen zorgen dat men ook aan de bestanden kan via een URL. Nu is dat mogelijk door te zeggen www.desite.be/Files/bestand.DAT maar aangezien bestand.DAT niet de echte naam is van het bestand kan dat niet. Men zou dus moeten kunnen intikken www.desite.be/document.doc. De gebruiker tikt dus die URL in, en dan krijgt hij bestand.DAT onder de naam document.doc. Hopelijk is het duidelijk genoeg. Kan iemand helpen?
  • Je kan aan de slag met URL rewriting (mits je server dat ondersteund). Alle requests naar een bepaalde URL worden dan vertaald naar een script wat de download afhandelt. Een voorbeeldje van URL rewriting met mod_rewrite van Apache. [code:1:09836a43c8] RewriteEngine On RewriteRule virtualfiles/(.*) /files/download.php?file=$1 [/code:1:09836a43c8] Deze regel zal de request voor [i:09836a43c8]http://domein.nl/virtualfiles/document.doc[/i:09836a43c8] vertalen naar [i:09836a43c8]http://domein.nl/files/download.php?file=document.doc[/i:09836a43c8] btw. Ik doe dit even uit de losse pols. Kijk dus of dit voldoet in jouw situatie, als je hiermee aan de slag kunt, en/of breidt de rule uit met extra condities. Meer info: http://httpd.apache.org/docs/misc/rewriteguide.html
  • Dat klinkt gek genoeg om te werken, hartelijk bedankt! Ik ga het meteen proberen.
  • Je kan overigens ook MultiViews gebruiken, bedenk ik me nu.
  • Welk van de twee raad je aan? En hoe kan ik weten of ze geïnstalleerd zijn op mijn server? :oops:
  • Aangezien al die bestandsnamen in je database staan kan je ook RewriteMap gebruiken. Een inleidend verhaal staat op [url=http://www.sitepoint.com/]Sitepoint[/url]: [url=http://www.sitepoint.com/article/guide-url-rewriting]mod_rewrite: A Beginner's Guide to URL Rewriting[/url]. Lees het goed door, het wordt voor jou met name interessant op de laatste pagina vanaf onderstaande alinea: [quote:428199af64]But our site is huge, as I've mentioned - who wants to hunt down all the IDs from the database, and then edit the config file by hand? No-one! Instead, we can use the mapping feature of mod_rewrite. Map allows us to provide a replacement-table - stored in a single text file -- within a hash file (for fast lookups), or even served through an external program! For better performance I'd generate a single text file using PHP, which contains the following: [...][/quote:428199af64]Ik hoop dat je hier weer even mee vooruit kan. - Bas
  • Hartelijk bedankt, een zeer goede site! Ik ben er nu volop mee aan het experimenteren en het lukt niet goed maar dat komt nog wel. Bedankt!

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.