首頁  >  文章  >  後端開發  >  如何從 PHP 表單 POST 透過 cURL 發送檔案?

如何從 PHP 表單 POST 透過 cURL 發送檔案?

Linda Hamilton
Linda Hamilton原創
2024-11-09 09:16:02672瀏覽

How to Send a File via cURL from a PHP Form POST?

透過cURL 從PHP 中的表單POST 傳送檔案

處理來自表單貼文的檔案上傳是API 開發中的一項常見任務。本問題探討如何使用 PHP 腳本透過 cURL 傳送檔案。

HTML 表單包含一個檔案上傳輸入欄位:

<form action="script.php" method="post" enctype="multipart/form-data">
  <input type="file" name="image">
  <input type="submit" name="upload" value="Upload">
</form>

伺服器端PHP 腳本(script.php )首先檢查是否點擊了「上傳」按鈕:

if (isset($_POST['upload'])) {
  // Handle file upload with cURL
}

要使用cURL 發送文件,我們需要設定以下參數:

  • CURLOPT_URL: 的URL遠端文件上傳目的地
  • CURLOPT_UPLOAD:1(表示請求包含文件包含文件)
  • CURLOPT_UPLOAD:1(表示請求包含文件包含文件)
  • CURLOPT_INFILE:上傳到伺服器的臨時檔案的檔案指標
  • CURLOPT_INFILESIZE :檔案的大小(以位元組為單位)

這是傳送檔案的範例片段:
$localFile = $_FILES['image']['tmp_name']; 
$url = "https://example.com/file_upload.php";

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, array('file' => '@' . $localFile);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);

在接收端,腳本應該處理檔案上傳和相應地儲存它。這是一個範例:
$file = $_FILES['file'];
$fileName = $file['name'];
$fileTmpName = $file['tmp_name'];
move_uploaded_file($fileTmpName, '/path/to/uploads/' . $fileName);

以上是如何從 PHP 表單 POST 透過 cURL 發送檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn