file hernoemen voor het downloaden

Status
Niet open voor verdere reacties.

phobia

Terugkerende gebruiker
Lid geworden
4 sep 2006
Berichten
1.777
Ik heb een upload script gemaakt en dat slaan het bestand, met een fictieve naam en een eigen extentie, op de server.
dus bv als g4lhg34gfckv4r3l2vr2jfl.bal

In mijn database sla ik de orginele naam en extentie op.

Maar nu wil ik de files ter download aanbieden, maar wel met de orginele bestandsnaam en extentie

kan ik dat met een aanpassing op dit script doen?
PHP:
<?PHP
// De output is een plaatje van het type <x>, in dit geval jpeg
header('Content-Type: image/jpeg');
 
// Dit geeft aan dat het gedownload moet worden
header('Content-Disposition: attachment; filename="plaatje.ext"');
 
// Link naar het plaatje dat geupload is
readfile('plaatje.ext');
?>
 
Ja, de default naam staat bij filename op regel 6. Als je daar "plaatje.ext" vervangt door de originele filename dan is dat de default name waar de browser het mee aanbiedt. De onderste bij readfile moet de naam hebben die de file op de server heeft, want daar wordt de file ingelezen en verzonden.
 
Maar in deze header is de content-type een image. Maar als ik me niet vergis is er toch ook een algemene?
 
Er is geen algemene. Je moet aangeven wat voor type het is.

Ik vermoed als je zegt "een eigen extensie" dat je een plain-text of een binary hebt? Het gaat niet om de extensie, het gaat om het type data dat je verzend en de manier waarop het opgeslagen is.
Wat voor files zijn het oorspronkelijk? Daar kun je vast het type wel uit afleiden.
 
Het gaat om txt php js css zip html, dus een gevarieerd aanbod
 
txt / php / js / css / html vallen allemaal onder "text/plain"

Zip is "application/octet-stream" als het goed is.
 
Okey, dus ff met een array een check doe om te bepalen wat voor een header ik nodig heb.
Ik hoopte dat ik met minder regels weg kom komen.

Maar thanx voor de info, het hele headers verhaal is nog een sprookjes voor me!
 
Er is een cq magische header setting 'application/force-download'
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan