使用PHP將檔案上傳到另一個PHP伺服器
fopen、fread和fwrite函式分別用於開啟檔案流、讀取資料流以及將資料寫入檔案。
檔案資源不必一定指向本地機器上的位置。
下面是一個將檔案從本地伺服器傳輸到FTP伺服器的示例:
$file = "file_name.jpg"; $destination = fopen("ftp://username:password@example.com/" . $file, "wb"); $source = file_get_contents($file); fwrite($destination, $source, strlen($source)); fclose($destination);
影像需要傳輸到FTP伺服器。因此,伺服器以寫入模式開啟,影像被寫入該位置,然後關閉流。
curl擴充套件使用客戶端URL庫(libcurl)將檔案從一個位置傳輸到另一個位置。實現curl解決方案的邏輯遵循以下邏輯:
- 首先初始化會話。
- 可以設定所需的傳輸選項。
- 可以執行傳輸。
- 可以關閉會話。
可以使用'curl_init'函式初始化curl會話。它返回一個可以與其他curl函式一起使用的資源。
可以使用'curl_setopt'設定上傳檔案的目標以及與傳輸會話相關的其他因素。
這需要curl資源,這是一個預定義的常量,它表示設定和可選值。
下面是一個演示相同內容的示例:
$session_begin = curl_init(); curl_setopt($session_begin, CURLOPT_POST, true); curl_setopt($session_begin, CURLOPT_POSTFIELDS, array('file' => 'path/to/file.txt')); curl_setopt($session_begin, CURLOPT_URL, 'http://server2/upload.php'); curl_exec($session_begin); curl_close($session_begin);
第二個伺服器可以像常規檔案上傳一樣處理。
廣告