How to use ftp in php to implement file upload and download functions

墨辰丷
Release: 2023-03-26 19:34:01
Original
1570 people have browsed it

This article mainly introduces the file upload and download function of PHP using ftp in detail. It has certain reference value. Interested friends can refer to it

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. At this time, go to the ftp server directory and you can see the upload. 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 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

Related recommendations:

PHP operation FTP class (upload, download, move, create, etc.), phpftp_PHP tutorial

PHP operates FTP classes (upload, download, move, create, etc.), phpftp

Python is implemented based on the FTP module ftpFile upload

The above is the detailed content of How to use ftp in php to implement file upload and download functions. 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
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!