HTML website en PDF openen in Android

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • The.Terminator
  • Registratie: November 2002
  • Laatst online: 16-10 21:23

The.Terminator

Un boer met bier

Topicstarter
Ik heb een HTML website die een directory uitleest buiten de public root (dus 1 stap terug).
De bestanden worden uitgelezen en zodra er op een PDF geklikt wordt dan gaat deze downloaden (met behulp van headers)

$path bevat de rest van de directory bijv "folder1/folder2/mijnpdf.pdf"

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$path_full = '../files/' . $path;
$path_exploded = explode('/', $path);
$filename = end($path_exploded);
            
if (file_exists($path_full)) {
    $finfo  = new finfo(FILEINFO_MIME);

    header('Content-Description: File Transfer');
    header('Content-Type: ' . $finfo->file($path_full));
    header("Content-Disposition: attachment; filename='" . $filename . "'");
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($path_full));
    readfile($path_full);
}


In een browser op de desktop komt netjes de vraag of je het bestand wilt openen of wilt opslaan.
Met een iPad wordt het bestand geopend, maar op Android wordt het bestand gedownload maar niet automatisch geopend. Met een bestand in de public root en een link erom heen (a href) wel.

Ik heb al Content-Disposition: inline geprobeerd (werd op StackOverflow voorgesteld).
Ook heb ik al een hardcoded het mimetype en filenaam gezet, maar dit werkt ook niet.

Ligt dit aan de instelling van mijn Android device of doe ik nu wat verkeerd.

Acties:
  • 0 Henk 'm!

  • orf
  • Registratie: Augustus 2005
  • Laatst online: 21:59

orf

Je kunt de headers vergelijken door bijvoorbeeld hier het adres van het bestand in de public root in te vullen.

Acties:
  • 0 Henk 'm!

  • boe2
  • Registratie: November 2002
  • Niet online

boe2

'-')/

offtopic, deze code lijkt heel akelig op vlak van beveiliging. Wat houdt iemand tegen van een eigen path door te sturen en zo toegang te hebben tot je hele filesysteem?

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind.' - Pratchett.


Acties:
  • 0 Henk 'm!

  • The.Terminator
  • Registratie: November 2002
  • Laatst online: 16-10 21:23

The.Terminator

Un boer met bier

Topicstarter
orf schreef op vrijdag 20 februari 2015 @ 10:41:
Je kunt de headers vergelijken door bijvoorbeeld hier het adres van het bestand in de public root in te vullen.
Bedankt, ik ga even frutselen
boe2 schreef op vrijdag 20 februari 2015 @ 10:46:
offtopic, deze code lijkt heel akelig op vlak van beveiliging. Wat houdt iemand tegen van een eigen path door te sturen en zo toegang te hebben tot je hele filesysteem?
Het gaat hier om een demo, indien deze goedgekeurd wordt komt de beveiliging en elk ander extra wens erin :)