Php datei downloaden

Wenn Sie auf Apache sind, gibt es ein sehr cooles Modul namens mod_xsendfile, das den Download einfacher und schneller macht. Sie geben einfach einen Header aus und das Modul kümmert sich um den Rest. Natürlich müssen Sie in der Lage sein, es zu installieren und es macht auch den Code weniger portabel, so dass Sie wahrscheinlich nicht wollen, dass dies für redisable code verwenden. IIRC mod_sendfile in Apache, x-accel-redirect in nginx An der Spitze von index.php, wir sind einschließlich filesLogic.php Datei. Dies ist die Datei, die die gesamte Logik enthält, unsere übermittelte Datei zu empfangen und im Upload-Ordner zu speichern sowie die Dateiinformationen in der Datenbank zu speichern. Lassen Sie uns diese Datei jetzt erstellen. (Wieder einmal, viele Skripte bekommen dies falsch, indem sie 400 Fehler oder andere Codes senden). Versuchen Sie nicht, die Bereichs-/S-Bereich(en) zu erraten oder zu beheben, da dies zu beschädigten Downloads führen kann, die gefährlicher sind als fehlgeschlagene. Dies sollte bei allen Dateitypen funktionieren. Dies wird nicht mit POST getestet, aber es könnte funktionieren. Nun, da Sie den Bereich haben, müssen Sie sicherstellen, dass dies in Bytes ausgedrückt wird, dass er nicht mehrere Bereiche enthält und dass der Bereich selbst gültig ist (Ende ist größer, dass der Start, Start nicht negativ ist und das Ende nicht größer als die Datei selbst ist. Beachten Sie, dass `bytes:-` keine gültige Anforderung ist.

Wenn der Bereich ungültig ist, müssen Sie eine URL ausgeben, die als Dateiname mit dieser Funktion verwendet werden kann, wenn die fopen Wrapper aktiviert wurden. Weitere Informationen zur Angabe des Dateinamens finden Sie unter fopen(). Links zu den Fähigkeiten der verschiedenen Wrapper, Hinweise zu ihrer Verwendung und Informationen zu vordefinierten Variablen finden Sie in den unterstützten Protokollen und Wrappern. Erstellen wir eine Datei mit dem Namen « image-gallery.php » und platzieren Sie den folgenden Code darin. Wenn ein Benutzer www.example.com/index.php besucht, generiert der Webserver die HTML-Antwort durch /usr/bin/php, die die Datei index.php aus /var/www/html ausführt. Hinweis: Je nach PHP-Konfiguration kann Ihre Datei möglicherweise nicht hochgeladen werden, wenn die Größe den upload_max_filesize Wert überschreitet, der in Ihrer php.ini-Datei festgelegt ist. Sie können diese Informationen jederzeit in Ihrer php.ini-Datei konfigurieren. Erhöhen Sie die Werte von post_max_size und upload_max_filesize . Zeigen Sie die Datei zuerst an, und legen Sie ihren Wert in URL fest. Erstellen Sie ein PHP-Skript, nennen Sie es « download.php » und kopieren/einfügen Sie den folgenden Code: passiert dies nur mit diesen beiden Dateitypen oder einer Datei? Haben Sie die Dateigröße für die heruntergeladene Datei überprüft? Tipp: Öffnen Sie die Datei in Ihrem Texteditor, die meiste Zeit wird eine Fehlermeldung angezeigt. Lösen Sie das gemeldete Problem. Andernfalls überprüfen Sie auch Ihr PHP-Fehlerprotokoll.

Wenn die Datei mit dem Browser nicht geöffnet werden kann, können Sie auch einfach den Speicherort-Header verwenden: Dann sollten sie von freigegebenen Hosts wegverschoben werden. Es liegt in ihrem Interesse, Dinge wie sendfile zu ermöglichen. Sie laufen wahrscheinlich immer noch mod_php und haben lahme Berechtigungen Mist zu. Hallo, ich habe Ihren Code verwendet, um eine download.php-Datei zu erstellen, um meine Dateien vor !-_SESSION-Benutzern zu schützen. Ich möchte auch meinen Ordner vor url-Zugriff schützen, wenn ich 700 als chmod-Wert verwende, wird die Seite die Download-Datei nicht zurückgeben, aber sie bleibt leer (die Fopen-Fehler).. Welchen Wert sollte ich für den Zugriff auf Dateien aus dem Code verwenden? Als wir die Dateien auflisteten, hatte jeder Download-Button (oder besser gesagt, Download-Link) einen Parameter namens file_id anihn angehängt. Wenn Sie also auf den Download-Link einer Datei klicken, wird die ID dieser Datei an die DateiLogic.php-Seite gesendet und wird von diesem Codestück, das wir gerade hinzugefügt haben, gepackt. Nachdem die Datei heruntergeladen wurde, aktualisieren wir die Anzahl der Downloads für diese bestimmte Datei in der Datenbank.

Wenn Sie beim Herunterladen immer noch seltsame Ergebnisse erhalten (besonders in IE), stellen Sie sicher, dass die PHP-Ausgabekomprimierung deaktiviert ist, sowie jede Serverkomprimierung (manchmal wendet der Server versehentlich Komprimierung auf die Ausgabe an, die vom PHP-Skript erzeugt wird). Klicken Sie auf das Dateieingabefeld und wählen Sie eine beliebige Datei von Ihrem Computer zum Hochladen aus.