ฟังก์ชัน fopen, fread และ fwrite สามารถใช้เพื่อเปิดสตรีมไฟล์ อ่านสตรีมข้อมูล และเขียนข้อมูลดังกล่าวลงในไฟล์ตามลำดับ
ทรัพยากรไฟล์ไม่จำเป็นต้องชี้ไปที่ตำแหน่งบนเครื่องท้องถิ่นเสมอไป
ด้านล่างนี้เป็นตัวอย่างที่ถ่ายโอนไฟล์จากเซิร์ฟเวอร์ภายในไปยังเซิร์ฟเวอร์ ftp -
$file = "file_name.jpg"; $destination = fopen("ftp://username:[email protected]/" . $file, "wb"); $source = file_get_contents($file); fwrite($destination, $source, strlen($source)); fclose($destination);
อิมเมจจะต้องถูกถ่ายโอนไปยังเซิร์ฟเวอร์ FTP ดังนั้นเซิร์ฟเวอร์จะเปิดในโหมดเขียน และรูปภาพจะถูกเขียนไปยังตำแหน่งนั้นและสตรีมจะปิด
ส่วนขยาย curl ใช้ Client URL Library (libcurl) เพื่อถ่ายโอนไฟล์จากที่หนึ่งไปยังอีกที่หนึ่ง ตรรกะของการใช้โซลูชัน curl เป็นไปตามตรรกะด้านล่าง -
- เริ่มต้นเซสชันก่อน
- สามารถตั้งค่าตัวเลือกการโอนที่ต้องการได้
- สามารถดำเนินการโอนได้
- ปิดเซสชันได้
เซสชัน curl สามารถเริ่มต้นได้โดยใช้ฟังก์ชัน 'curl_init' ส่งคืนทรัพยากรที่สามารถใช้กับฟังก์ชัน 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, 'https://server2/upload.php'); curl_exec($session_begin); curl_close($session_begin);
เซิร์ฟเวอร์ที่สองสามารถจัดการได้เหมือนกับการอัปโหลดไฟล์ปกติ