Download-Datei mit php-script, auf Zeit

Diese Frage über das downloaden von Dateien vom server mit der Skriptsprache php. Wenn der Benutzer klickt auf download-link, es verarbeitet zu download.php - Datei, und verwenden header es begann herunterladen.

Nach dem Download der Datei gibt es eine Funktion in download.php - Datei, die updates der mysql-Datenbank über Datei heruntergeladen und zieht Geld vom Konto des Benutzers. Alles funktioniert einwandfrei.

Nun, das problem tritt auf, wenn Benutzer download-manager installiert im pc. Manchmal download gestartet im browser und download-manager. So, am Ende sind es zwei download-Einträge in der Datenbank, Und das Geld abgezogen vom Konto des Benutzers zwei mal.

Frage : gibt es eine Möglichkeit zu starten nur ein download zur Zeit? Oder ein anderer Weg, dies zu tun?

Download-link, den ich zur Verfügung stellen Benutzer.

<a href='download.php?id=1'>Download Test Video</a>

Das Skript, das ich benutze für das herunterladen der Datei. (download.php)

    $file = "c:/test.avi"; //$file = $_GET['id'];
    $title = "Test Video";

    header("Pragma: public");
    header('Content-disposition: attachment; filename='.$title);
    header("Content-type: ".mime_content_type($file));
    header("Content-Length: " . filesize($file) ."; ");
    header('Content-Transfer-Encoding: binary');
    ob_clean();
    flush();

    $chunksize = 1 * (1024 * 1024); //how many bytes per chunk
    if (filesize($file) > $chunksize) {
        $handle = fopen($file, 'rb');
        $buffer = '';

        while (!feof($handle)) {
            $buffer = fread($handle, $chunksize);
            echo $buffer;
            ob_flush();
            flush();
        }

        fclose($handle);
    } else {
        readfile($file);
    }

    record_download('user id', 'file id');
Dies kann praktisch... stackoverflow.com/questions/14233850/... .. Die Idee ist zu blockieren, diese download-Manager.. es gibt andere Ideen. Aber dies ist einer von Ihnen...
Sind Sie aufladen per download auf ein video? Ihr besser dran mit einem pay-per-view und Betten Sie ihn auf Ihrer Webseite sind Sie nicht? Wenn Sie den Ladevorgang für die gesamte video -, gerade lassen den Kunden "kaufen" ein video, und dann laden Sie es so oft wie Sie möchten (oder setzen Sie eine Begrenzung auf diese)
Auch nicht sicher, wie würden Sie diese Einrichtung für Ihre Benutzer, aber ich vor kurzem abgeschlossen ähnliches. Wenn Sie gehen, um dies zu downloaden, eine eigene URL angezeigt wird (download/<token>), die Sie verwenden. Wenn Sie versucht, um diesen wieder das Vorherige token verwendet werden. Natürlich funktioniert dies nur, wenn eine aktive Sitzung vorhanden ist.
Es gibt nicht nur videos, Software, mp3s, Bilder und vieles mehr. Nach dem Klick auf den kaufen-button, der den download startet. Aber nach, dass ich nicht wollen, dass Benutzer den download der Datei wieder. Diese Website ist nicht für die Verwendung auf internet, ich benutze es auf lokale lan-server (Intranet).
Ich habe Punkt auf, wie dies zu tun. Bitte beschreiben Sie diese kurz als Antwort.

InformationsquelleAutor user1995997 | 2013-04-11

Schreibe einen Kommentar