Heim >Backend-Entwicklung >PHP-Tutorial >Wie poste ich eine Dateizeichenfolge mit cURL in PHP ohne temporäre Dateien?

Wie poste ich eine Dateizeichenfolge mit cURL in PHP ohne temporäre Dateien?

Susan Sarandon
Susan SarandonOriginal
2024-10-17 18:30:02328Durchsuche

How to POST a File String Using cURL in PHP Without Temporary Files?

POSTEN einer Dateizeichenfolge mit cURL in PHP

Die Aufgabe, eine Datei zusammen mit anderen Formulardaten zu senden, wird komplizierter, wenn die Datei ausschließlich als Zeichenfolge dargestellt wird. Dieses Tutorial zeigt, wie Sie cURL in PHP verwenden, um die Anfrage zu erstellen und die Erstellung temporärer Dateien zu umgehen.

Lösung

Die Analyse einer Beispiel-POST-Anfrage von einem Browser zeigt eine mehrteilige/Formulardatenstruktur mit a einzigartige Grenze. Die manuelle Replikation dieses Formats umfasst Folgendes:

  1. Erstellen eines Formulardatenkörpers: Trennen Sie die Datei- und Nichtdateifelder und verketten Sie sie mit geeigneten Kopfzeilen und Trennzeichen. Beispiel:
--boundary
Content-Disposition: form-data; name="otherfield"
Content-Type: text/plain

other field content
--boundary
Content-Disposition: form-data; name="filename"; filename="test.jpg"
Content-Type: image/jpeg

raw JPEG data
--boundary--
  1. cURL-Optionen festlegen: Konfigurieren Sie cURL für die Verarbeitung der POST-Anfrage mit Multipart-/Formulardaten und geben Sie die Inhaltslänge an.
<code class="php">$options = array(
    // Send post data over a POST request
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => array(
        // Content-type to multipart/form-data with boundary
        'Content-Type: multipart/form-data; boundary='.$delimiter,
        // Content-Length to the length of our multipart form data
        'Content-Length: ' . strlen($data)
    )
);</code>
  1. cURL-Anfrage ausführen: Verwenden Sie curl_setopt, um die POST-Felder festzulegen und die Anfrage auszuführen.
<code class="php">curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
curl_exec($handle);</code>

Durch die Erstellung des Körpers und Durch die Festlegung geeigneter Header simulieren wir eine POST-Anfrage von einem Browser und vermeiden die Erstellung temporärer Dateien.

Das obige ist der detaillierte Inhalt vonWie poste ich eine Dateizeichenfolge mit cURL in PHP ohne temporäre Dateien?. 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