Avatar billede nisv Nybegynder
26. februar 2005 - 02:47 Der er 2 kommentarer

oprindeligt filnavn ved download

Hej eksperter.

Jeg har en upload-funktion, der flytter filer over i en bestemt folder og tildeler den et navn efter det IDnr den får tildelt af en mySql server. mySql serveren registerer IDnr, url, og det oprindelige filnavn.

Således bliver fx c:\\et\sted\artikel.pdf til /files/DocID_0006.pdf.

Det virker fint. Mit problem derimod er, at når bruger downloader filen, der befinder sig på url=/files/DocID_0006.pdf, så skulle bruger gerne downloade filen med dens oprindelige filnavn, dvs bruger opdager aldrig at filen har heddet DocID_0006.pdf, jeg undgår en masse referencebøvl.

Mit spørgsmål er derfor, hvordan laver jeg en downloadfunktion, der henter filen "DocID_0006.pdf", men gemmer den som "artikel.pdf"?

Gracias
Avatar billede plx Nybegynder
26. februar 2005 - 03:20 #1
<?php
$docid = $_GET['docid']; // DocID_x.pdf
$original = "original.pdf"; // navn trækkes ud fra database

header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=\"$original\"");

readfile("files/$docid");
?>

hvis scriptet hedder pdf.php, downloades filen med: pdf.php?docid=DocID_006.pdf
Avatar billede nisv Nybegynder
26. februar 2005 - 14:25 #2
Lige præcis det jeg manglede. Og det virker!

Nu hvor du har du har gjort mig opmærksom på, at løsningen findes ved at bruge headers, checkede jeg lige API'en ud (php.net). Der står lidt ekstra til fx det her, til dem der vil vide mere, også om hvorfor det nogen gange ikke virker.

Anyways, dit svar virker!

smid et svar plx :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester