Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP ftp_fput() 함수 완벽 정리: 열려 있는 파일을 FTP 서버로 업로드하는 방법

PHP의 ftp_fput() 함수는 이미 열려 있는 로컬 파일의 내용을 읽어 FTP 서버상의 파일로 업로드할 때 사용됩니다. 일반적인 ftp_put() 함수와 달리, 파일 경로 대신 fopen()으로 생성한 파일 포인터(리소스)를 인자로 받는다는 점이 특징입니다.

구문

ftp_fput(con, remote_file, open_file, mode, startpos);

매개변수

  • con − ftp_connect()로 생성한 FTP 연결 리소스입니다.

  • remote_file − 업로드될 원격(서버) 파일의 경로입니다.

  • open_file − 업로드할 데이터를 담고 있는, 이미 열려 있는 로컬 파일 포인터입니다.

  • mode − 전송 모드를 지정합니다. 텍스트 파일은 FTP_ASCII, 이미지·실행 파일 등은 FTP_BINARY를 사용합니다.

  • startpos − 업로드를 시작할 위치입니다. 기본값은 0이며, 이 값을 지정하면 부분 전송(이어 올리기)에 활용할 수 있습니다.

반환 값

ftp_fput() 함수는 업로드에 성공하면 TRUE를, 실패하면 FALSE를 반환합니다.

예제

다음은 로컬 파일 "new.txt"를 연 뒤, FTP 서버의 "demo.txt"로 업로드하는 예제입니다.

<?php
    $ftp_server = "192.168.0.4";
    $ftp_user = "amit";
    $ftp_pass = "tywg61gh";

    // FTP 서버에 연결
    $con = ftp_connect($ftp_server) or die("$ftp_server 에 연결할 수 없습니다");
    $login = ftp_login($con, $ftp_user, $ftp_pass);

    $my_file = "demo.txt";       // 서버에 저장될 파일명
    $local_file = "new.txt";     // 업로드할 로컬 파일
    $file_pointer = fopen($local_file, "r");

    // 파일 업로드 시도
    if (ftp_fput($con, $my_file, $file_pointer, FTP_ASCII)) {
        echo "업로드 완료!";
    } else {
        echo "파일 업로드 중 오류가 발생했습니다!";
    }

    // 연결 및 파일 핸들 종료
    ftp_close($con);
    fclose($file_pointer);
?>

참고 사항

바이너리 파일(이미지, 압축 파일 등)을 다룰 때는 반드시 FTP_BINARY 모드를 사용해야 파일 손상을 방지할 수 있습니다. 또한 작업이 끝난 후에는 ftp_close()로 FTP 연결을, fclose()로 파일 포인터를 반드시 닫아 리소스 누수를 예방하는 것이 좋습니다.