2009-05-26 6 views
-5

Ich habe nie wirklich verstanden, wie es geht. Ich möchte wo, wo ich meine Adresse eingeben kann, gefolgt von /index.php?= < eine Datei, die auf dem FTP> .exe ist. Von dort würde ich direkt zu einer Seite, die einen Download-Button hat und vielleicht so etwas wie eine Anzeige.Die ganze index.php? = <filename>. .exe

Wer hat irgendwelche Tutorials oder Anleitungen, die ich mir anschauen kann?

+0

Sie suchen also etwas wie ein Donwloads Management Skript? – Gumbo

+0

Sie sollten sich vorstellen, dass Sie jemand anders sind, der versucht, diese "Frage" zu "verstehen";) –

Antwort

2

Ich denke, er ist über einfache $ _GET-Anfragen>. <

<?php 

$file = $_GET['file']; 

if (file_exists($file)) { 
    header('Content-Type: application/octet-stream'); 
    echo file_get_contents($file); 
} 

?> 

Ofcourse dies ist ein sehr einfaches Beispiel ohne überhaupt Sicherheit. Es ist nicht empfehlenswert, dies in der Produktion zu verwenden, ohne die Sicherheit zu erhöhen.

+2

Verwenden Sie readfile() anstelle von file_get_contents() - es ist viel effizienter in dieser Art von Situation. – ceejayoz

+2

Um zu erklären, was ozzy bedeutet, wenn er darauf hinweist, dass es sich um Sicherheitsprobleme mit diesem Skript handelt, überlegen Sie, was passieren würde, wenn $ _GET ['file'] = '/ etc/passwd' oder '../../../ ../../../etc/passwd 'usw. Aus diesen Gründen möchten Sie wahrscheinlich etwas wie $ file ='/my/downloads/dir/'machen. Basisname ($ _ GET ['Datei']); –

3

Im gonna Beißt ...

Der PHP-Skript stellt die Datei von außen nicht zugänglich ist, und nur auf einem Pro-Anfrage und mit möglicher Authentifizierung. Wenn Sie sehen:

download.php?file=sdjasdk.exe 

Der Download-Skript sieht ein bisschen wie:

<?php 
    if($_SESSION['auth'] == TRUE){ 
     $file = fileopen($whatever); 
     echo "mimetype crap" 
     //spit out file 
    }else{ 
     echo "not authorized bozo" 
    } 
?> 

DONE.

+3

Sie würden wahrscheinlich den "mimetype crap" im Antwortheader mit header() anstatt echo senden –

+0

Nur ein Beispiel ... lesen als "Code your own" –