PHP

[PHP] CURL를 이용해 FTP 제어하기

chsr 2020. 5. 11. 13:05
728x90
반응형

■ PHP CURL를 이용해 FTP 제어하기


■ 사용법

1. 파일을 업로드하는 방법

<?php

  // 서버 경로
  $realserver = 'ftp://habonyphp.com/public_html/data/';

  // 서버 사용자 정보
  $user = 'habony';
  $pass = '123456';

  // 업로드할 파일
  $realfile = $_FILES['uerfile']['tmp_name'];

  $ch = curl_init();

  curl_setopt($ch, CURLOPT_UPLOAD, 1);
  curl_setopt($ch, CURLOPT_INFILE, @fopen($realfile, 'r'));
  curl_setopt($ch, CURLOPT_INFILESIZE, @filesize($realfile));​
  curl_setopt($ch, CURLOPT_URL, $realserver);
  curl_setopt($ch, CURLOPT_USERPWD, $user . ':' . $pass);

  curl_exec($ch);

  curl_close($ch);
  
?>


2. 파일을
다운로드 방법

<?php

  // 서버 경로
  $realserver = 'ftp://habonyphp.com/public_html/data/';

  // 서버 사용자 정보
  $user = 'habony';
  $pass = '123456';

  // 다운로드할 파일
  $realfile = 'example.gif';

  $remote = tempnam(sys_get_temp_dir(), 'CURL_FTP');

  $ch = curl_init();

  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  curl_setopt($ch, CURLOPT_FILE, $fp = @fopen($remote, 'w+'));
  curl_setopt($ch, CURLOPT_URL, $realserver . $realfile);
  curl_setopt($ch, CURLOPT_USERPWD, $user . ':' . $pass);

  curl_exec($ch);

  curl_close($ch);
  fclose($fp);

  // URL 경로
  $url = $remote;
  
 ?>


3. 파일을
삭제하는 방법

<?php

  // 서버 경로
  $realserver = 'ftp://habonyphp.com/public_html/data/';

  // 서버 사용자 정보
  $user = 'habony';
  $pass = '123456';

  // 삭제할 파일
  $list = array(
      'DELE habony.gif', 'DELE namefile.bmp', 'DELE example.jpg'
  );

  $ch = curl_init();

  curl_setopt($ch, CURLOPT_POSTQUOTE, $list);
  curl_setopt($ch, CURLOPT_URL, $realserver);
  curl_setopt($ch, CURLOPT_USERPWD, $user . ':' . $pass);

  curl_exec($ch);

  curl_close($ch);
  
?>


4. 파일의
이름변경

<?php

  // 서버 경로
  $realserver = 'ftp://habonyphp.com/public_html/data/';

  // 서버 사용자 정보
  $user = 'habony';
  $pass = '123456';

  // 현재 파일
  $old = 'old.bmp';

  // 새로운 이름
  $new = 'new.bmp';

  $ch = curl_init();

  curl_setopt($ch, CURLOPT_POSTQUOTE, array("RNFR " . $old, "RNTO " . $new);
  curl_setopt($ch, CURLOPT_URL, $realserver);
  curl_setopt($ch, CURLOPT_USERPWD, $user . ':' . $pass);

  curl_exec($ch);

  curl_close($ch);
  
?>


5.
폴더삭제 방법

<?php

  // 서버 경로
  $realserver = 'ftp://habonyphp.com/public_html/data/';

  // 서버 사용자 정보
  $user = 'habony';
  $pass = '123456';

  // 삭제할 폴더
  $rmdir = 'dirname';

  $ch = curl_init();

  curl_setopt($ch, CURLOPT_POSTQUOTE, array("RMD " . $rmdir);
  curl_setopt($ch, CURLOPT_URL, $realserver);
  curl_setopt($ch, CURLOPT_USERPWD, $user . ':' . $pass);

  curl_exec($ch);

  curl_close($ch);
  
?>


6.
폴더생성 방법

<?php

  // 서버 경로
  $realserver = 'ftp://habonyphp.com/public_html/data/';

  // 서버 사용자 정보
  $user = 'habony';
  $pass = '123456';

  // 생성할 폴더
  $mkdir = 'dirname';

  $ch = curl_init();

  curl_setopt($ch, CURLOPT_POSTQUOTE, array("MKD " . $mkdir);
  curl_setopt($ch, CURLOPT_URL, $realserver);
  curl_setopt($ch, CURLOPT_USERPWD, $user . ':' . $pass);

  curl_exec($ch);

  curl_close($ch);
  
?>


7.
권한설정하는 방법

<?php

  // 서버 경로
  $realserver = 'ftp://habonyphp.com/public_html/data/';

  // 서버 사용자 정보
  $user = 'habony';
  $pass = '123456';

  // 설정할 폴더/파일
  $fname = 'data';

  $ch = curl_init();

  curl_setopt($ch, CURLOPT_POSTQUOTE, array("SITE CHMOD 0707 " . $fname);
  curl_setopt($ch, CURLOPT_URL, $realserver);
  curl_setopt($ch, CURLOPT_USERPWD, $user . ':' . $pass);

  curl_exec($ch);

  curl_close($ch);
  
?>


8.
파일 목록을 출력하는 방법

<?php

  // 서버 경로
  $realserver = 'ftp://habonyphp.com/public_html/data/';

  // 서버 사용자 정보
  $user = 'habony';
  $pass = '123456';

  $ch = curl_init();

  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_URL, $realserver);
  curl_setopt($ch, CURLOPT_USERPWD, $user . ':' . $pass);

  $list = curl_exec($ch);

  curl_close($ch);

  print_r($list);

?>

 

출처

 

웹언어 스터디

무료로 사용할 수 있는 CMS 형 PHP 버드 패널, 테마, FTP 외 라이브러리 제공

www.habonyphp.com

 

728x90
반응형