php ftp file upload and download function

怪我咯
Release: 2023-03-14 11:32:01
Original
2393 people have browsed it

FTP is the English abbreviation of File Transfer Protocol, while the Chinese abbreviation is "File Transfer Protocol". Used for bidirectional transmission of control files over the Internet. At the same time, it is also an application. There are different FTP applications based on different operating systems, and all of these applications adhere to the same protocol to transfer files. In the use of FTP, users often encounter two concepts: "Download" and "Upload". "Downloading" files means copying files from the remote host to your own computer; "uploading" files means copying files from your own computer to the remote host. In Internet language, users can upload (download) files to (from) remote hosts through client programs.

This article mainly introduces PHP to use ftp to implement file upload and download functions in detail. It has certain reference value. Interested friends can refer to

ftp File upload

php comes with a function package for ftp operation. A relatively simple ftp file upload operation can be completed through the following steps:

1. Confirm the ip address and port information of the ftp server (if you are using the default port, you don’t need to care);
2. Perform the ftp_connect operation and connect to the ftp server (you need to pay attention to whether the port parameter is set);
3. Perform the ftp_login operation and use the ftp username and password to log in;
4. The distinction begins here. If you only need to upload files and there are no other requirements, then you can perform the ftp_put operation of file upload here; if If there is a need to store uploaded files according to the directory, then continue downward;
5. Use ftp_nlist to obtain the directory and file names in the given ftp directory, and check whether the required directory exists. If it does not exist, ftp_mkdir is required to create the directory;
6. Switch to ftp_chdir in the target directory;
7. Perform ftp_put operation to upload files;
8. Perform ftp_close to close the ftp connection.

In order to upload files according to the date format directory in ftp, make a simple code implementation:

<?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);
}
Copy after login

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
Copy after login

You can see that the printing operation is successful. Now go to the ftp server directory and you can see the uploaded file.

ftp file download

Compared to file upload, it is really rare to use php to download ftp files, but since this function is available, it means that There's always a chance someone will use it, so make a simple example as well.

Use the bbb.mp3 file uploaded above as the download target, download it to the current directory, and name it 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);
}
Copy after login

The above is the detailed content of php ftp file upload and download function. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template