Computer >> 컴퓨터 >  >> 프로그램 작성 >> PHP

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 세션은 '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);

두 번째 서버는 일반 파일 업로드로 처리할 수 있습니다.