Avatar billede mhaahr001 Nybegynder
31. januar 2010 - 19:15 Der er 11 kommentarer og
1 løsning

Tvungen download af PDF

Jeg forsøger at få nedenstående script til at virke. Den sender som sådan filen, men... Filen kan ikke åbnes når den er downloadet. Acrobat Reader melder at filen er beskadiget...

$path = $_GET['dir'] . "/" . $_GET['file'];
echo $path;
$file = basename($path);
echo $file;
$size = filesize($path);
echo $size;
header("Content-Description: File Transfer");
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$file\"");
header("Content-Length: $size");
readfile($path);
Avatar billede mhaahr001 Nybegynder
31. januar 2010 - 19:16 #1
Se bort fra "echo"-linjerne... De er kuntil debug.
Avatar billede leif Seniormester
31. januar 2010 - 19:26 #2
Bruger du https eller http ? Jeg har sloges med samme problem på https men ikke når jeg brugte http
Avatar billede leif Seniormester
31. januar 2010 - 19:27 #3
Men hov, prøv lige at slå ALT dit debug fra.
Avatar billede mhaahr001 Nybegynder
31. januar 2010 - 19:31 #4
Bruger kun http, og alt debug er nu deaktiveret. Ingen ændring.
Avatar billede Slettet bruger
31. januar 2010 - 19:55 #5
Har du tjekket at der ikke sker andet output efter filen er blevet sendt afsted? Er mellemrum kan ødelægge nogle filer.
Avatar billede Slettet bruger
31. januar 2010 - 19:57 #6
Desuden, husk at escape det input du får gennem GET-variabler.
En "/etc/passwd/" kan være en dræber.
Avatar billede mhaahr001 Nybegynder
31. januar 2010 - 20:04 #7
Har checket for ekstra karakterer... Stadig samme problem.
Avatar billede repox Seniormester
31. januar 2010 - 21:40 #8
Må jeg prøve at downloade et eksemplar af den beskadigede PDF?
Avatar billede coderdk Praktikant
31. januar 2010 - 21:48 #9
Lad os se den kode du har nu, så vi er helt med ;)
Avatar billede mhaahr001 Nybegynder
31. januar 2010 - 22:04 #10
repox: du kan teste her: "http://mhaahr.dk/test/?dir=files/SDU/Fag og noter/Kvantitative analyse redskaber"

coderdk:
$path = $_GET['dir'] . "/" . $_GET['file'];
$file = basename($path);
$size = filesize($path);
header("Content-Description: File Transfer");
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$file\"");
header("Content-Length: $size");
readfile($path);
Avatar billede mhaahr001 Nybegynder
31. januar 2010 - 22:10 #11
Problemet er løst. Der havde sneget sig et mellemrum ind inden include-sætningen, der includer scriptet. Tak til alle :)

Kimsey kom tættest på, så kom med et svar, så er der points...
Avatar billede Slettet bruger
01. februar 2010 - 16:51 #12
Jeg er glad for at du fik løst problemet :)
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