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

PHP ftp_put() 함수 완벽 가이드 – FTP 서버에 파일 업로드하기

PHP의 ftp_put() 함수는 로컬 시스템의 파일을 FTP 서버로 업로드하는 데 사용되는 내장 함수입니다. 웹 애플리케이션에서 생성한 파일이나 로컬에 저장된 데이터를 원격 서버로 전송해야 할 때 유용하게 활용할 수 있습니다.

문법

ftp_put(con, remote_file, local_file, mode, beg_pos);

매개변수

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

  • remote_file − 서버에 저장될 원격 파일의 경로입니다.

  • local_file − 업로드할 로컬 파일의 경로입니다.

  • mode − 전송 모드를 나타내며, 다음 두 값 중 하나를 사용할 수 있습니다.

    • FTP_ASCII − 텍스트 파일 전송에 적합합니다.

    • FTP_BINARY − 이미지, 실행 파일 등 어떤 형식이든 안전하게 전송할 수 있습니다.

  • beg_pos − (선택 사항) 업로드를 시작할 위치를 지정합니다. 이어 올리기(resume) 기능을 구현할 때 활용할 수 있습니다.

반환값

업로드에 성공하면 TRUE, 실패하면 FALSE를 반환합니다.

예제

다음은 FTP 서버에 파일을 업로드하는 예제입니다 −

<?php
    $ftp_server = "192.168.0.4";
    $ftp_user = "tim";
    $ftp_pass = "wthbn#@121";

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

    // 로그인
    $login = ftp_login($con, $ftp_user, $ftp_pass);

    $local_file = "localfile.txt";      // 로컬 파일 경로
    $my_serverfile = "serverfile.txt";  // 서버에 저장될 파일 경로

    if (ftp_put($con, $my_serverfile, $local_file, FTP_ASCII)) {
        echo "파일이 성공적으로 업로드되었습니다!";
    } else {
        echo "파일 업로드 중 오류가 발생했습니다!";
    }

    // 연결 종료
    ftp_close($con);
?>

참고 사항

  • 원본 예제에서는 $con$ftp_conn이라는 변수명이 뒤섞여 있어 실행 시 오류가 발생할 수 있으므로, 위 예제에서는 $con으로 통일했습니다.

  • 일반 텍스트 파일은 FTP_ASCII 모드로 전송할 수 있지만, 이미지나 압축 파일처럼 바이트 손상에 민감한 파일은 반드시 FTP_BINARY 모드를 사용해야 합니다.

  • 실제 운영 환경에서는 보안을 위해 일반 FTP보다 FTPS(ftp_ssl_connect()) 또는 SFTP 사용을 권장합니다.