Respuesta un poco fuera de contexto, pero seguramente funciona. Si está ejecutando Apache + php en ese directorio ftp, cargue su archivo zip en esa carpeta y cree extractor.php
:
$zip = new ZipArchive;
if ($zip->open('my_zip.zip') === TRUE) {
$zip->extractTo('/path/to/my/zip');
$zip->close();
echo 'ok';
}
y luego presione url, por ejemplo:http://example.com/extractor.php
bingo php extraerá ese zip por ti.
No es posible descomprimir archivos a través de una conexión FTP. FTP significa "Protocolo de transferencia de archivos", que solo fue diseñado para transferir y administrar parcialmente archivos en el extremo remoto, pero no para ejecutar comandos. Para descomprimir un archivo tendría que ejecutar un programa como tar, bzip2 o similar, pero eso no es posible a través de una conexión FTP.
Necesita otra sesión que le permita ejecutar comandos, como SSH. O bien, desempaqueta el archivo en su máquina y transfiere el contenido a través de FTP, que será considerablemente más lento si tiene una gran cantidad de archivos pequeños debido a la sobrecarga de FTP.
Puede hacerlo si monta el recurso ftp usando curlftpfs
:
curlftpfs ftp://ftp.server.org/ /path/to/mountpoint
entonces
unzip /path/to/mount/test.zip