So laden Sie große Dateien über 500 MB in PHP hoch [duplicate]

Lesezeit: 3 Minuten

Ich habe eine Upload-Seite in PHP erstellt, aber ich weiß nicht, warum die Seite keine Dokumente hochlädt, die größer als 500 MB sind. Dies ist das erste Mal, dass ich versuche, etwas so Großes hochzuladen, ich habe alle Konfigurationen in der PHP.INI geändert (post_max_size = 700M , upload_max_filesize = 600 MB und max_execution_time = 300). Die Codes zum Hochladen sind wie folgt

if(isset($_FILES['upload']) && !empty($_FILES['upload']['name'])){
 move_uploaded_file($_FILES['upload']['tmp_name'], $this->filePath.$this->fileName);
}

Ich brauche Hilfe, ich frage mich, ob etwas nicht richtig läuft.

  • Was sind die Fehler in Ihrem Serverfehlerprotokoll?

    – Jocelyn

    19. April 2013 um 10:48 Uhr

  • @all, tut mir leid, mein Server war ausgefallen, der zurückgegebene Fehler ist ein undefinierter Indexname, als ob das Eingabefeld für den Dateiupload nicht vorhanden wäre, oder manchmal heißt es Ausführungszeitüberschreitung, das frustriert mich

    – James Okpe George

    19. April 2013 um 11:16 Uhr


  • Ausführungszeitüberschreitung wäre sinnvoll move_uploaded_file aufgrund des Kopiervorgangs, den es tut. Was das Timeout betrifft, keine Angst – die Übertragung der Daten zum Server ist NICHT im Timeout enthalten. Bis zum Start von PHP ist Ihre Anfrage bereits eingetroffen.

    – Sébastien Renauld

    19. April 2013 um 14:10 Uhr

So laden Sie grose Dateien uber 500 MB in PHP
Twisted1919

Glauben Sie, ob eine Erhöhung der Upload-Größenbeschränkung das Problem lösen wird? Was ist, wenn Sie eine 2-GB-Datei hochladen, was passiert dann? Berücksichtigen Sie den Speicherverbrauch eines solchen Skripts?

Was Sie stattdessen brauchen, ist Chunked Upload, siehe hier: Umgang mit pluploads Chunked Uploads auf der Serverseite und hier: Datei-Uploads; Wie nutzt man „Chunking“?

  • +1. Dies wäre der richtige Weg. Das HTTP-Posting großer Dateien ist ziemlich unzuverlässig.

    – Jean

    19. April 2013 um 10:54 Uhr

  • @Jean – ich weiß, ich habe es auf meiner eigenen Haut gespürt.

    – Twisted1919

    19. April 2013 um 10:59 Uhr

1646252645 500 So laden Sie grose Dateien uber 500 MB in PHP
Jean

Per Konfiguration erlaubt PHP nur das Hochladen von Dateien bis zu einer bestimmten Größe. Es gibt viele Artikel im Internet, die erklären, wie Sie dieses Limit ändern können. Nachfolgend sind einige davon aufgeführt:

Sie können beispielsweise Ihre bearbeiten php.ini Datei und Satz:

memory_limit = 32M
upload_max_filesize = 24M
post_max_size = 32M

Sie müssen dann Apache neu starten.

Notiz:

Das Hochladen großer Dateien wie dieser ist jedoch nicht sehr zuverlässig. Es können Fehler auftreten. Möglicherweise möchten Sie die Dateien aufteilen und einige zusätzliche Daten zur Fehlerkorrektur hinzufügen. Eine Möglichkeit, dies zu tun, ist die Verwendung par Wiederherstellungsdateien. Sie können die Dateien dann nach dem Hochladen mit der überprüfen par Befehlszeilenprogramm auf Unix-ähnlichen Systemen.

So laden Sie grose Dateien uber 500 MB in PHP
Suresh Kumar Amrani

Ich nehme an, Sie meinen, dass Sie die Dateien per HTTP übertragen. Obwohl nicht ganz so schlimm wie FTP, ist es keine gute Idee, wenn Sie einen anderen finden können, der das Problem löst. HTTP (und damit die Programmkomponenten) sind für die Übertragung relativ kleiner Dateien im Internet optimiert.

Während das Protokoll Server-zu-Client-Bereichsanforderungen unterstützt, erlaubt es keine umgekehrte Operation. Selbst wenn die Software an beiden Enden von der Lautstärke nicht betroffen wäre, je mehr Daten Sie übertragen, desto länger ist das Intervall, in dem Sie die Verbindung verlieren könnten. Aber das größte Problem ist dieser Vorbehalt im letzten Satz.

915810cookie-checkSo laden Sie große Dateien über 500 MB in PHP hoch [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy