Heim >Backend-Entwicklung >PHP-Tutorial >Kann file_get_contents() Datei-Uploads mit Multipart-/Formulardaten durchführen?
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!