[PHP/MySQL] Download aanbieden

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • mees
  • Registratie: December 2000
  • Laatst online: 06-08 11:13

mees

Duuuussss...

Topicstarter
Okay, ik zit weer iets heel ingewikkelds voor me te halen, wat in het begin niet zo onmogelijk leek. Ik hoop dat ik het een beetje duidelijk kan uitleggen..

Ik heb lokaal een webservertje draaien (van phpdev, firepages), deze draait op C:\. Dan heb ik een mysql table, waarin bestandsnamen staan als 'F:\bla\bestand.exe'.

Nu heb ik dus een overzicht met al die bestanden en beschrijving erbij, maar nu wil ik deze ook ter download aanbieden. Dit kan niet zomaar, omdat de bestanden dus op F:, G: en meer schijven staan. Nu zou je kunnen zeggen, maak een alias aan in je apache config, maar dan moet ik voor elk pad een alias aanmaken, en voor elk bestand een aparte value maken waar in staat wel pad er opgevraagd moet worden.

Is er een manier om die op te lossen in PHP? Ik zat zelf te denken om uit de database te halen wat voor bestand het is, dit als header te sturen, vervolgens het betreffende bestand uit te lezen, en te sturen naar de client.

Is dat te omslachtig, of de enige mogelijke manier?

[ Voor 4% gewijzigd door mees op 15-01-2005 18:27 ]

8 bitterballen = 1 byterbal


Acties:
  • 0 Henk 'm!

Verwijderd

Je kan toch een normaal script gebruiken om een bestand te laten downloaden?

PHP:
1
2
3
4
5
6
7
8
9
10
11
<?php

$sFile = "woei.gif";

header ("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header ("Content-Type: application/octet-stream");
header ("Content-Length: " . filesize($sFile));
header ("Content-Disposition: attachment; filename=woei.gif");
readfile($sFile);

?>


Dat is helemaal niet zo omslachtig hoor

Acties:
  • 0 Henk 'm!

  • Rannasha
  • Registratie: Januari 2002
  • Laatst online: 17:33

Rannasha

Does not compute.

Verwijderd schreef op zaterdag 15 januari 2005 @ 18:34:
Je kan toch een normaal script gebruiken om een bestand te laten downloaden?

PHP:
1
2
3
4
5
<?php

...

?>


Dat is helemaal niet zo omslachtig hoor
Behalve dat de bestanden van de TS niet in de voor het internet beschikbare dir op z'n harde schijf staan (als ik het goed begrepen heb), dus kunnen de bestanden niet direct door de browser worden aangesproken, maar moeten ze door PHP worden ingelezen en uitgespuwd richting browser.

@TS> je zou kunnen proberen om de file met fopen() en fread() uit te lezen door PHP en dan de inhoud van de file outputten naar de client. Moet je alleen wel eerst de juiste headers versturen, dus wellicht moet je het type file ook in de DB-opslaan.

[ Voor 20% gewijzigd door Rannasha op 15-01-2005 18:43 ]

|| Vierkant voor Wiskunde ||


Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Species5618 schreef op zaterdag 15 januari 2005 @ 18:40:
[...]


Behalve dat de bestanden van de TS niet in de voor het internet beschikbare dir op z'n harde schijf staan (als ik het goed begrepen heb), dus kunnen de bestanden niet direct door de browser worden aangesproken, maar moeten ze door PHP worden ingelezen en uitgespuwd richting browser.

@TS> je zou kunnen proberen om de file met fopen() en fread() uit te lezen door PHP en dan de inhoud van de file outputten naar de client. Moet je alleen wel eerst de juiste headers versturen, dus wellicht moet je het type file ook in de DB-opslaan.
Dat is toch precies wat hij doet? Je kunt sFile ook een waarde als "F:\Files\blaat.doc" geven.

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • Rannasha
  • Registratie: Januari 2002
  • Laatst online: 17:33

Rannasha

Does not compute.

Michali schreef op zaterdag 15 januari 2005 @ 18:50:
[...]


Dat is toch precies wat hij doet? Je kunt sFile ook een waarde als "F:\Files\blaat.doc" geven.
Damn, overheen gelezen, dacht dat hij alleen de browser redirecte naar het filepath.

* Rannasha gaat zich in een hoekje zitten schamen

|| Vierkant voor Wiskunde ||


Acties:
  • 0 Henk 'm!

  • mees
  • Registratie: December 2000
  • Laatst online: 06-08 11:13

mees

Duuuussss...

Topicstarter
_o_ Quist :)

Hmm, zo simpel :)
Nu hoef ik dus alleen nog maar de filename uit t volledige pad te fetchen, en dat als filename meesturen...

Tnx :D

8 bitterballen = 1 byterbal

Pagina: 1