자동 파일 로딩
PHP를 사용하여 FTP를 통해 파일을 업로드하고 다운로드하는 방법에 대한 튜토리얼에 오신 것을 환영합니다.
자동 스크립트로 백업 서버에 파일을 업로드 해야 합니까? 아니면 자동으로 업데이트를 다운로드 할 수 있습니까?
실제로 PHP에는 두 가지 방법이 있습니다 –이 안내서는 FTP 또는 cURL 확장을 안내합니다. 알아 보려면 계속 읽으십시오!
ⓘ이 튜토리얼의 시작 부분에 모든 소스 코드가 포함 된 zip 파일이 포함되어 있으므로 모든 것을 복사하여 붙여 넣을 필요가 없습니다.
예제 코드 다운로드
먼저 약속 된 예제 소스 코드에 대한 다운로드 링크가 있습니다.
소스 코드 다운로드
모든 예제 소스 코드를 다운로드하려면 여기를 클릭하십시오. MIT 라이센스에 따라 릴리스 했으므로 코드 위에 빌드하거나 자신의 프로젝트에서 자유롭게 사용할 수 있습니다.
빠른 시작
PHP FTP
이 첫 번째 섹션에서는 “legit” PHP FTP 확장을 사용하여 파일을 업로드하고 다운로드하는 방법을 설명합니다.
PHP 설정
이 방법이 작동하려면 php.ini 파일에서 PHP FTP 확장을 활성화하십시오 :
extension=php_ftp.dll
PHP FTP 기본
// (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);
이것은 매우 간단하고 이해하기 쉬워야 합니다.
PHP FTP 다운로드
// (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 업로드
// (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 다운로드
// (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 FTP 업로드
// (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 – 빠른 요약
Function | Description |
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 – 간단한 요약
Function | Description |
curl_init() | Initialize cURL connection. |
fopen(FILE, MODE) | Opens a file for reading or writing. |
curl_setopt_array(STREAM, ARRAY) | Sets cURL options.
|
curl_exec(STREAM) | Executes cURL. |
curl_close(STREAM) | Closes cURL connection. |
fclose(FILE) | Commits and writes file properly. |
참조
등록된 댓글이 없습니다.