댓글 검색 목록

[php] PHP를 사용하여 FTP를 통해 다운로드 파일을 업로드하는 방법

페이지 정보

작성자 운영자 작성일 20-04-19 19:33 조회 1,353 댓글 0

자동 파일 로딩 


PHP를 사용하여 FTP를 통해 파일을 업로드하고 다운로드하는 방법에 대한 튜토리얼에 오신 것을 환영합니다. 

자동 스크립트로 백업 서버에 파일을 업로드 해야 합니까? 아니면 자동으로 업데이트를 다운로드 할 수 있습니까? 

실제로 PHP에는 두 가지 방법이 있습니다 –이 안내서는 FTP 또는 cURL 확장을 안내합니다. 알아 보려면 계속 읽으십시오!


ⓘ이 튜토리얼의 시작 부분에 모든 소스 코드가 포함 된 zip 파일이 포함되어 있으므로 모든 것을 복사하여 붙여 넣을 필요가 없습니다.


예제 코드 다운로드 


먼저 약속 된 예제 소스 코드에 대한 다운로드 링크가 있습니다.


소스 코드 다운로드 


모든 예제 소스 코드를 다운로드하려면 여기를 클릭하십시오. MIT 라이센스에 따라 릴리스 했으므로 코드 위에 빌드하거나 자신의 프로젝트에서 자유롭게 사용할 수 있습니다.


빠른 시작 

  • 폴더에 다운로드하여 압축을 풉니다.
  • 관련된 데이터베이스가 없으므로 포함 된 각 파일을 따라 가십시오.
  • php.ini에서 FTP 및 cURL 확장자가 활성화되어 있는지 확인하십시오.

PHP FTP 

이 첫 번째 섹션에서는 “legit” PHP FTP 확장을 사용하여 파일을 업로드하고 다운로드하는 방법을 설명합니다.


PHP 설정 


이 방법이 작동하려면 php.ini 파일에서 PHP FTP 확장을 활성화하십시오 :


extension=php_ftp.dll 


PHP FTP 기본 


<?php // (0) FTP SETTINGS define('FTP_HOST', 'ftp.example.com'); define('FTP_USER', 'user'); define('FTP_PASSWORD', 'password'); // (1) CONNECT TO FTP SERVER $ftp = ftp_connect(FTP_HOST) or die("Failed to connect to " . FTP_HOST); // (2) LOGIN if (ftp_login($ftp, FTP_USER, FTP_PASSWORD)) { // (3) DO YOUR FTP MAGIC HERE $currentDir = ftp_pwd($ftp); // Get current directory $files = ftp_nlist($ftp, $currentDir); // List files & folders // $ok = ftp_chdir($ftp, "FOLDER"); // Change the current folder print_r($files); } else { echo "Invalid user/password"; } // (4) CLOSE FTP CONNECTION ftp_close($ftp); ?> 


이것은 매우 간단하고 이해하기 쉬워야 합니다.

  • FTP 서버에 연결하려면 ftp_connect() 함수를 사용해야 합니다.
  • 다음으로 ftp_login() 함수를 사용하여 FTP 서버에 로그인해야 합니다.
  • 로그인하면 거의 모든 종류의 FTP 요가를 할 수 있습니다.
    ftp_pwd() 현재 디렉토리를 얻는다
    ftp_pchdir() 현재 디렉토리 변경
    ftp_nlist() 현재 디렉토리의 파일과 폴더를 나열합니다
    물론 – 파일 업로드, 다운로드, 삭제 및 이름 바꾸기.
  • 마지막으로 ftp_close()로 FTP 연결을 닫아야 합니다.

PHP FTP 다운로드 


<?php // (0) FTP SETTINGS define('FTP_HOST', 'ftp.example.com'); define('FTP_USER', 'user'); define('FTP_PASSWORD', 'password'); // (1) CONNECT TO FTP SERVER $ftp = ftp_connect(FTP_HOST) or die("Failed to connect to " . FTP_HOST); // (2) LOGIN if (ftp_login($ftp, FTP_USER, FTP_PASSWORD)) { // (3) DOWNLOAD $source = "file.txt"; // Target file on FTP server $destination = "downloaded.txt"; // Save to this file if (ftp_get($ftp, $destination, $source, FTP_BINARY)) { echo "Saved to $destination"; } else { echo "Error downloading $source"; } } else { echo "Invalid user/password"; } // (4) CLOSE FTP CONNECTION ftp_close($ftp); ?> 


FTP 서버에서 파일을 다운로드하려면 먼저 동일한 연결 및 로그인을 수행 한 다음 ftp_get()을 사용하여 원하는 파일을 가져옵니다.


PHP FTP 업로드 


<?php // (0) FTP SETTINGS define('FTP_HOST', 'ftp.example.com'); define('FTP_USER', 'user'); define('FTP_PASSWORD', 'password'); // (1) CONNECT TO FTP SERVER $ftp = ftp_connect(FTP_HOST) or die("Failed to connect to " . FTP_HOST); // (2) LOGIN if (ftp_login($ftp, FTP_USER, FTP_PASSWORD)) { // (3) UPLOAD $source = "file.txt"; // Source file on server $destination = "uploaded.txt"; // Save to this file on FTP server if (ftp_put($ftp, $destination, $source, FTP_BINARY)) { echo "Uploaded to $destination"; } else { echo "Error uploading $source"; } } else { echo "Invalid user/password"; } // (4) CLOSE FTP CONNECTION ftp_close($ftp); ?> 


이것은 지금 놀라운 일이 아닙니다. ftp_get()을 사용하여 파일을 다운로드하고 ftp_put()을 사용하여 파일을 업로드합니다.


PHP CURL 


이 섹션에서는 PHP cURL을 사용하여 FTP로 작업하는 다른 방법을 살펴 보겠습니다 ... 어떻게 든 PHP FTP가 제대로 작동하지 않으면.


PHP 설정 


PHP FTP와 유사하게 php.ini 파일에서 PHP cURL 확장자를 활성화하십시오 :


extension=curl 


CURL FTP 다운로드 


<?php // (0) FTP SETTINGS define('FTP_HOST', 'ftp://example.com/'); define('FTP_USER', 'user'); define('FTP_PASSWORD', 'password'); $source = "FILE.txt"; // File to download on FTP server $destination = "DOWNLOAD.txt"; // File to save locally // (1) INIT CURL + LOCAL FILE $curl = curl_init(); $file = fopen($destination, 'w'); // (2) SET CURL OPTIONS curl_setopt_array($curl, [ CURLOPT_URL => FTP_HOST . $source, CURLOPT_USERPWD => FTP_USER . ":" . FTP_PASSWORD, CURLOPT_RETURNTRANSFER => 1, CURLOPT_FILE => $file ]); // (3) EXECUTE CURL curl_exec($curl); // (4) CLOSE CONNECTION + FILE curl_close($curl); fclose($file); ?> 


FTP cURL을 통해 파일을 다운로드하는 것은 조금 더 복잡하지만 여전히 간단합니다.


  • curl_init()로 cURL을 초기화합니다.
  • fopen()을 사용하여 서버에서 빈 파일을 열고 만듭니다.
  • curl_setopt_array를 사용하여 cURL 옵션을 설정하십시오.
    CURLOPT_URL FTP 서버의 주소
    CURLOPT_USERPWD 사용자 및 비밀번호.
    CURLOPT_RETURNTRANSFER 다운로드하는 중이기 때문에 전송을 반환하도록 설정합니다.
    CURLOPT_FILE fopen()으로 연 빈 파일을 가리킵니다.
  • curl_exec()로 cURL을 실행하면 마술처럼 행동합니다.
  • 마지막으로 curl_close()로 연결을 닫고 fclose()로 파일을 닫아야 합니다.


CURL FTP 업로드 


<?php // (0) FTP SETTINGS define('FTP_HOST', 'ftp://example.com/'); define('FTP_USER', 'user'); define('FTP_PASSWORD', 'password'); $source = "FILE.txt"; // File to upload to FTP server $destination = "UPLOAD.txt"; // File name on FTP server // (1) INIT CURL + LOCAL FILE $curl = curl_init(); $file = fopen($source, 'r'); // (2) SET CURL OPTIONS curl_setopt_array($curl, [ CURLOPT_URL => FTP_HOST . $destination, CURLOPT_USERPWD => FTP_USER . ":" . FTP_PASSWORD, CURLOPT_UPLOAD => 1, CURLOPT_INFILE => $file, CURLOPT_INFILESIZE => filesize($source) ]); // (3) EXECUTE CURL curl_exec($curl); // (4) CLOSE CONNECTION + FILE curl_close($curl); fclose($file); ?> 


업로드는 다운로드와 반대입니다. 서버에서 빈 파일을 만드는 대신 기존 파일을 읽습니다.


요약 


이것이 이 프로젝트의 전부이며, 여기에 도움이 될만한 추가 정보에 대한 작은 섹션이 있습니다.


PHP FTP – 빠른 요약 


FunctionDescription
ftp_connect(URL)Connects to target FTP host.
ftp_login(STREAM, USER, PASSWORD)Login to the FTP server.
ftp_get(STREAM, DESTINATION, SOURCE, MODE)Downloads selected file.
ftp_put(STREAM, DESTINATION, SOURCE, MODE)Uploads selected file.
ftp_close(STREAM)Closes FTP connection.

PHP CURL FTP – 간단한 요약 


FunctionDescription
curl_init()Initialize cURL connection.
fopen(FILE, MODE)Opens a file for reading or writing.
curl_setopt_array(STREAM, ARRAY)

Sets cURL options.

  • CURLOPT_URL: Host URL
  • CURLOPT_USERPWD: The user and password (user:password).
  • CURLOPT_RETURNTRANSFER: Returns transfer from the server? True or false.
  • CURLOPT_FILE: Target file to save to (download).
  • CURLOPT_UPLOAD: Has file upload? True or false.
  • CURLOPT_INFILE: Target file to upload.
  • CURLOPT_INFILESIZE: Size of file to upload.
curl_exec(STREAM)

Executes cURL.

curl_close(STREAM)

Closes cURL connection.

fclose(FILE)

Commits and writes file properly.

참조 



댓글목록 0

등록된 댓글이 없습니다.

웹학교 로고

온라인 코딩학교

코리아뉴스 2001 - , All right reserved.