Computer >> Máy Tính >  >> Lập trình >> PHP

Tải tệp có php lên máy chủ php khác

Các hàm fopen, fread và fwrite có thể được sử dụng để mở luồng tệp, đọc luồng dữ liệu và ghi dữ liệu đó vào tệp tương ứng.

Tài nguyên tệp không nhất thiết phải trỏ đến một vị trí trên chính máy cục bộ.

Dưới đây là ví dụ chuyển tệp từ máy chủ cục bộ sang máy chủ 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);

Hình ảnh cần được chuyển đến máy chủ FTP. Do đó, máy chủ được mở ở chế độ ghi và hình ảnh được ghi vào vị trí đó và luồng bị đóng.

Phần mở rộng curl sử dụng Thư viện URL máy khách (libcurl) để chuyển tệp từ vị trí này sang vị trí khác. Logic của việc triển khai giải pháp curl tuân theo logic dưới đây -

  • Trước tiên hãy khởi tạo một phiên.
  • Có thể đặt các tùy chọn chuyển mong muốn.
  • Quá trình chuyển có thể được thực hiện.
  • Phiên có thể bị đóng.

Phiên curl có thể được khởi tạo bằng hàm 'curl_init'. Nó trả về một tài nguyên có thể được sử dụng với các hàm curl khác.

Có thể đặt đích để tải tệp lên và các yếu tố khác liên quan đến phiên chuyển bằng cách sử dụng 'curl_setopt'.

Điều này lấy tài nguyên curl, đó là một hằng số được xác định trước đại diện cho cài đặt và giá trị tùy chọn.

Dưới đây là một ví dụ minh họa điều tương tự -

$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);

Máy chủ thứ hai có thể được xử lý như một tệp tải lên thông thường.