Hochladen von Dateien mit file_get_contents() unter Verwendung des HTTP-Stream-Kontexts
Das Hochladen von Dateien über ein Webformular kann mithilfe der cURL-Erweiterung nahtlos erfolgen. Es ist jedoch auch möglich, Datei-Uploads mit der PHP-Funktion file_get_contents() in Verbindung mit dem HTTP-Stream-Kontext durchzuführen.
Multipart Content-Type
Zum Hochladen einer Datei mit file_get_contents() ist es wichtig, einen „multipart/form-data“-Inhaltstyp zu definieren. Dies gibt an, dass die Anfrage mehrere Teile enthält, einschließlich der Dateidaten und aller zugehörigen Parameter. Das zum Trennen dieser Teile verwendete Trennzeichen wird als Grenze bezeichnet.
Erstellen des Inhaltskörpers
Der Inhaltskörper muss den Spezifikationen von HTTP und dem Content-Type-Header entsprechen . Geben Sie für jede hochgeladene Datei die folgenden Informationen an:
Erstellen des Dateiinhalts
Rufen Sie mit file_get_contents() den Inhalt der hochzuladenden Datei ab. Hängen Sie es an den Inhaltstext an.
Anforderungsheader und Kontext festlegen
Definieren Sie den Content-Type-Header und erstellen Sie einen HTTP-Stream-Kontext mit stream_context_create(). Setzen Sie die Anforderungsmethode auf POST, fügen Sie die Header hinzu und geben Sie den Inhaltstext an.
Ausführen des Uploads
Führen Sie abschließend die Funktion file_get_contents() mit der entsprechenden URL aus und der konfigurierte Kontext.
Hinweis
Binärdateien können direkt ohne Codierung gesendet werden. HTTP unterstützt die binäre Datenübertragung.
Durch Befolgen dieser Schritte können Sie file_get_contents() und den HTTP-Stream-Kontext nutzen, um Dateien auf einen Remote-Webserver hochzuladen.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3