如何使用PHP从FTP下载zip文件

时间:2019-07-12 11:53:47

标签: php ftp zip ziparchive

我需要强制从FTP服务器下载许多文件。我有一个登录名和密码。

通过按一个按钮,将特殊目录中的所有文件添加到一个ziparchive中,并通过强制下载进行下载。

这是我的PHP代码。它是从某个目录下载所有文件,但我需要强制下载它们并带有一个存档。我使用了一些“标题”,但文件已损坏。 ftp服务器中没有ZipArchive库,所以我不知道该怎么做。

$ftp_server = "Server"; 
$conn_id = ftp_connect ($ftp_server) 
    or die("Couldn't connect to $ftp_server"); 

$login_result = ftp_login($conn_id, "user", "password"); 
if ((!$conn_id) || (!$login_result)) 
    die("FTP Connection Failed"); 

ftp_sync ("httpdocs/dir/");    // Use "." if you are in the current directory 

ftp_close($conn_id);  

// ftp_sync - Copy directory and file structure 
function ftp_sync ($dir) { 

    global $conn_id; 

    if ($dir != ".") { 
        if (ftp_chdir($conn_id, $dir) == false) { 
            echo ("Change Dir Failed: $dir<BR>\r\n"); 
            return; 
        } 
        if (!(is_dir($dir))) 
            mkdir($dir); 
        chdir ($dir); 
    } 

    $contents = ftp_nlist($conn_id, "."); 
    foreach ($contents as $file) { 

        if ($file == '.' || $file == '..') 
            continue; 

        if (@ftp_chdir($conn_id, $file)) { 
            ftp_chdir ($conn_id, ".."); 
            ftp_sync ($file); 
        } 
        else 
            ftp_get($conn_id, $file, $file, FTP_BINARY); 
    } 

    ftp_chdir ($conn_id, ".."); 
    chdir (".."); 

} 

0 个答案:

没有答案