>백엔드 개발 >PHP 튜토리얼 >php ftp 파일 업로드 및 다운로드 기능

php ftp 파일 업로드 및 다운로드 기능

怪我咯
怪我咯원래의
2017-07-23 09:50:462404검색

FTP는 File Transfer Protocol의 영어 약어이고, 중국어 약어는 "File Transfer Protocol"입니다. 인터넷을 통한 제어 파일의 양방향 전송에 사용됩니다. 동시에 그것은 응용이기도 하다. 다양한 운영 체제를 기반으로 하는 다양한 FTP 애플리케이션이 있으며 이러한 애플리케이션은 모두 동일한 프로토콜을 사용하여 파일을 전송합니다. FTP를 사용할 때 사용자는 "다운로드"와 "업로드"라는 두 가지 개념을 자주 접하게 됩니다. 파일을 "다운로드"한다는 것은 원격 호스트에서 자신의 컴퓨터로 파일을 복사하는 것을 의미하고, 파일을 "업로드"한다는 것은 자신의 컴퓨터에서 원격 호스트로 파일을 복사하는 것을 의미합니다. 인터넷 언어에서는 사용자가 클라이언트 프로그램을 통해 원격 호스트에 파일을 업로드(다운로드)할 수 있습니다.

이 글은 주로 PHP가 ftp를 사용하여 파일 업로드 및 다운로드 기능을 구현하는 방법을 자세히 소개합니다. 관심 있는 친구는 이를 참조할 수 있습니다.

ftp 파일 업로드

php에는 해당 작업을 위한 ftp 함수 패키지가 제공됩니다. , 다음 단계를 통해 비교적 간단한 FTP 파일 업로드 작업을 완료할 수 있습니다.

1. FTP 서버의 IP 주소와 포트 정보를 확인합니다(기본 포트를 사용하는 경우에는 신경 쓸 필요가 없습니다).
2. ftp_connect 작업을 수행하고 ftp 서버에 연결합니다(port 매개변수가 설정되었는지 주의해야 합니다).
3. ftp_login 작업을 수행하고 ftp 사용자 이름과 비밀번호를 사용하여 로그인합니다. 여기에서 파일을 전송해야 하는 경우 다른 요구 사항이 없으면 여기에서 파일 업로드의 ftp_put 작업을 수행할 수 있습니다. 디렉터리에 따라 업로드된 파일을 저장해야 하는 경우 계속 진행하세요.
5. ftp_nlist를 사용하여 디렉토리 아래에 지정된 ftp 디렉토리와 파일 이름을 얻고, 필요한 디렉토리가 존재하지 않는 경우 ftp_mkdir을 사용하여 디렉토리를 생성해야 합니다.
6. ;
7. ftp_put 작업을 수행하여 파일을 업로드합니다.
8. ftp_close를 수행합니다.

ftp의 날짜 형식 디렉터리에 따라 파일을 업로드하려면 간단한 코드 구현을 만드세요.

<?php
$host = &#39;10.0.0.42&#39;;
$user = &#39;uftp&#39;;
$pwd = &#39;uftp&#39;;

// 进行ftp连接,根据port是否设置,传递的参数会不同
if(empty($port)){
    $f_conn = ftp_connect($host);
}else{
    $f_conn = ftp_connect($host, $port);
}
if(!$f_conn){
    echo "connect fail\n";
    exit(1);
}
echo "connect success\n";

// 进行ftp登录,使用给定的ftp登录用户名和密码进行login
$f_login = ftp_login($f_conn,$user,$pwd);
if(!$f_login){
    echo "login fail\n";
    exit(1);
}
echo "login success\n";

// 获取当前所在的ftp目录
$in_dir = ftp_pwd($f_conn);
if(!$in_dir){
    echo "get dir info fail\n";
    exit(1);
}
echo "$in_dir\n";

// 获取当前所在ftp目录下包含的目录与文件
$exist_dir = ftp_nlist($f_conn, ftp_pwd($f_conn));
print_r($exist_dir);

// 要求是按照日期在ftp目录下创建文件夹作为文件上传存放目录
echo date("Ymd")."\n";
$dir_name = date("Ymd");
// 检查ftp目录下是否已存在当前日期的文件夹,如不存在则进行创建
if(!in_array("$in_dir/$dir_name", $exist_dir)){
    if(!ftp_mkdir($f_conn, $dir_name)){
        echo "mkdir fail\n";
        exit(1);
    }else{
        echo "mkdir $dir_name success\n";
    }
}
// 切换目录
if(!ftp_chdir($f_conn, $dir_name)){
    echo "chdir fail\n";
    exit(1);
}else{
    echo "chdir $dir_name success\n";
}
// 进行文件上传
$result = ftp_put($f_conn, &#39;bbb.mp3&#39;, &#39;/root/liang/ftp/bbb.mp3&#39;, FTP_BINARY);
if(!$result){
    echo "upload file fail\n";
    exit(1);
}else{
    echo "upload file success\n";
    exit(0);
}

Print:

root@webdevelop232:~/liang/ftp# php ftp.php 
connect success
login success
/home/uftp
Array
(
  [0] => /home/uftp/Kalimba.mp3
  [1] => /home/uftp/test.txt
)
20170721
mkdir 20170721 success
chdir 20170721 success
upload file success

인쇄 작업이 성공한 것을 확인할 수 있습니다. FTP 서버의 디렉토리로 이동하면 업로드된 파일을 볼 수 있습니다.

ftp 파일 다운로드

파일 업로드에 비해 php를 사용하여 ftp 파일을 다운로드하는 경우는 정말 드물지만, 이 기능이 존재하기 때문에 항상 이용할 수 있는 사람들이 있다는 의미이므로 간단하게도 만들어보았습니다. 하나의 예.

위에 업로드한 bbb.mp3 파일을 다운로드 대상으로 사용하세요. 현재 디렉터리에 다운로드하고 이름을 1.mp3:

<?php
$host = &#39;10.0.0.42&#39;;
$uname = &#39;uftp&#39;;
$upwd = &#39;uftp&#39;;

// 进行ftp连接
if(empty($port)){
  $f_conn = ftp_connect($host);
}else{
  $f_conn = ftp_connect($host, $port);
}
if(!$f_conn){
  echo "ftp connect fail\n";
  exit(1);
}
// 进行ftp登录
if(!ftp_login($f_conn, $uname, $upwd)){
  echo "ftp login fail\n";
  exit(1);
}
// 进行ftp下载
if(!ftp_get($f_conn, &#39;./1.mp3&#39;, ftp_pwd($f_conn).&#39;/&#39;.date(&#39;Ymd&#39;).&#39;/bbb.mp3&#39;, FTP_BINARY)){
  echo "ftp download fail\n";
  exit(1);
}else{
  echo "ftp download success\n";
  exit(0);
}
로 지정하세요.

위 내용은 php ftp 파일 업로드 및 다운로드 기능의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.