Heim >Backend-Entwicklung >PHP-Tutorial >Kann file_get_contents() Datei-Uploads mit Multipart-/Formulardaten durchführen?

Kann file_get_contents() Datei-Uploads mit Multipart-/Formulardaten durchführen?

Linda Hamilton
Linda HamiltonOriginal
2024-10-18 13:19:30587Durchsuche

Can file_get_contents() Perform File Uploads with multipart/form-data?

Dateien mit file_get_contents() und multipart/form-data hochladen

Trotz der Einfachheit des Datei-Uploads mit CURL sind Benutzer möglicherweise neugierig, ob file_get_contents() kann diese Aufgabe mithilfe des HTTP-Stream-Kontexts ausführen.

Multipart Content-Type stellt eine Herausforderung beim Hochladen von Dateien dar. Es erfordert die Definition einer Grenze, um jeden Teil innerhalb der hochgeladenen Datei abzugrenzen. Diese Grenze kann wie jede Zeichenfolge, die nicht im Inhaltskörper enthalten ist, mithilfe eines Zeitstempels mit microtime(true) generiert werden.

Sobald die Grenze definiert ist, muss sie im Content-Type-Header angegeben werden. Darüber hinaus muss ein Inhaltskörper erstellt werden, der der HTTP-Spezifikation und dem gesendeten Header folgt. Jeder Formularfeldname muss im Header „Content-Disposition“ enthalten sein, zusammen mit den Headern „Dateiname“ und „Content-Type“.

Wenn mehrere Dateien hochgeladen werden sollen, muss der Vorgang des Generierens der Zeichenfolge „$content“ für jede Datei wiederholt werden Datei und geben Sie entsprechend unterschiedliche FORM_FIELD-Werte an.

Schließlich kann der Stream-Kontext mithilfe des Kontextparameters von file_get_contents() erstellt werden. Das http-Array innerhalb des Kontextparameters konfiguriert die Methode (POST), Header (einschließlich des Content-Type mit der mehrteiligen Grenze) und den Inhalt.

Durch die Ausführung von file_get_contents() mit dem konfigurierten Kontext wird der Datei-Upload durchgeführt eingeleitet. Insbesondere ist die Codierung von Binärdateien nicht erforderlich, da HTTP Binärdaten effektiv verarbeiten kann.

Das obige ist der detaillierte Inhalt vonKann file_get_contents() Datei-Uploads mit Multipart-/Formulardaten durchführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn