Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

อัปโหลดไฟล์ด้วย PHP ไปยังเซิร์ฟเวอร์ PHP อื่น


ฟังก์ชัน fopen, fread และ fwrite สามารถใช้เปิดไฟล์สตรีม อ่านข้อมูลสตรีม และเขียนข้อมูลลงไฟล์ตามลำดับ

ทรัพยากรไฟล์ไม่จำเป็นต้องชี้ไปที่ตำแหน่งบนเครื่อง local

ตัวอย่างด้านล่างโอนไฟล์จากเซิร์ฟเวอร์ local ไป FTP server:

$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 server เปิดเซิร์ฟเวอร์ในโหมดเขียน และเขียนรูปภาพไปที่ตำแหน่งนั้นและปิดสตรีม

ส่วนขยาย curl ใช้ Client URL Library (libcurl) โอนไฟล์จากที่หนึ่งไปอีกที่ ตรรกะการ implement curl solution ตามตรรกะด้านล่าง:

  • Initialize session ก่อน
  • ตั้งค่าตัวเลือกการโอนที่ต้องการ
  • ดำเนินการโอน
  • ปิด session

curl session เริ่มต้นด้วย 'curl_init' คืนทรัพยากรที่ใช้กับ curl functions อื่นๆ

ปลายทางอัปโหลดและปัจจัยอื่นๆ ของการโอน session สามารถตั้งค่าด้วย 'curl_setopt' ฟังก์ชันนี้รับ curl resource, predefined constant ที่แทนการตั้งค่า และค่าทางเลือก

ตัวอย่างด้านล่าง:

$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, 'https://server2/upload.php'); curl_exec($session_begin); curl_close($session_begin);

เซิร์ฟเวอร์ที่สองสามารถจัดการเป็น regular file upload ได้