Vraag & Antwoord

Webprogrammeren & scripting

kopbreker: document onder andere naam downloaden in php!

Anoniem
Aerypton 2
4 antwoorden
  • Voorbeeldsituatie:

    De gebruiker moet bijvoorbeeld "test.doc" kunnen downloaden, dat voorlopig bijvoorbeeld onder de naam "sEgdXeQHd.dat" op de server staat. Via database wordt dit verband gelegd.

    Op dit moment maak ik een kopie van "sEgdXeQHd.dat" in een tijdelijke map op de server. Daar hernoem ik het naar "test.doc", en laat ik het downloaden. Alle documenten in de tijdelijke map die er al langer dan 10 minuten staan worden telkens iemand iets naar die map kopieert verwijderd. De server is groot, maar niet oneindig groot! :lol: Heel goed gevonden van mezelf vond ik, totdat ik het volgende besefte.

    Wat als twee verschillende gebruikers binnen een tijdspanne van tien minuten twee verschillende documenten willen downloaden onder dezelfde naam bijvoorbeeld "aerypton.gif". Dan zou het kunnen gebeuren dat de ene het document van de ander krijgt. En dat mag echt niet gebeuren. :cry:



    Kent iemand de oplossing voor dit probleem? Ik heb mij al sufgezocht… verschillende avonden na elkaar. Misschien bestaat er een php-commando dat het mogelijk maakt om rechtstreeks een document te downloaden onder een andere naam, zodat geen tijdelijke map moet gemaakt worden?
  • Zelf gebruik ik hiervoor

    [quote:83d61a0904]Header("Content-Type: application/octet-stream");
    Header("Accept-Ranges: bytes");
    Header("Content-Disposition: attachment; filename=slaopals.zip");
    readfile("origineel.xxx"); [/quote:83d61a0904]

    zojuist nog ff getest, maar met .doc bestanden (op de plaats van origineel.xxx) lijkt het niet te werken.
    Bij mij werkt het in elk geval voor zip, exe en htm bestanden (ieder met hun eigen Content-type) dus wellicht dat aanpassen van het Content-Type daarvoor een oplossing biedt.

    Let erop dat er nog niks naar het scherm geschreven mag zijn, anders "werkt" header() niet en krijg je een volgend soort foutmelding
    Warning: Cannot modify header information - headers already sent by
  • Je kan toch gewoon die map een random naam geven en die later verwijderen of zo (door een cronjob of zo)?
  • toevallig had iemand net zo'n vraag op een ander forum :wink:
    http://www.phpfreakz.nl/forum.php?forum=1&iid;=270606

Beantwoord deze vraag

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