2013-09-21 98 views
5

我正在尝试创建一个脚本来上传某个zip文件,当前为“test.zip”,然后将其解压缩。我在这个网站上找到了一些关于如何解压缩的答案,但却不知道如何在FTP服务器上做到这一点。全部使用PHP请。将.zip文件上传到FTP并使用PHP将其解压缩使用PHP

当前代码:

$zip = new ZipArchive; 
$zip->open('test.zip'); 
$zip->extractTo('./'); 
$zip->close(); 

再次感谢:)

+0

这看起来像它会做的解压。你想以编程方式FTP吗?解压之前或之后?来自或解压缩的服务器? – halfer

回答

4

在解压缩之前,您可以使用表格上传压缩文件(仅限自己的管理区?/ localhost?)。我复制这从我的代码上传图片,并只能上传.zip文件 HTML部分:

<form action='file.php' enctype='multipart/form-data' method='post'> 
    <p>Please Upload a ZIP File.</p> 
    <input type='file' name='file'> 
    <input type='submit'/> 
</form> 

PHP部分:

$temp = explode(".", $_FILES["file"]["name"])[1]; //Get the extension 
if($temp == "zip"){ 
    move_uploaded_file($_FILES["file"]["tmp_name"],"unzipme.zip") or die("Couldn't upload. Check permissions and retry."); 
      //Relocate home? 
    header("Location: /"); 
    exit(); 
} 

您需要的权限上传到您的目录,WWW的日期或相似的东西。

希望这会有所帮助。

+0

其实我是指www-data组* – 2013-09-21 21:23:37

1

首先你应该上传的zip压缩包到服务器。 这里是一个如何在PHP中执行基本的FTP事情的例子。

http://www.php.net/manual/en/ftp.examples-basic.php

之后,你应该可以使用你在问题中所描述的方法来解压缩服务器上的文件。

+0

Sry我忘了提及它,我已经创建了一个上传ZIP的脚本,只需要将它解压到机器上,我不知道如何配置这个方法来使用FTP会话。 – Beater

+0

@Beater我不明白为什么你需要配置的东西。如果zip文件在机器上,并且您知道它的文件名,您可以将它解压缩,对吧? –

1

您或者需要访问您正在上传的计算机上的命令或程序,或者也可以上传可通过URL执行的脚本。如果您通过FTP上传到可运行PHP的Web服务器目录,请将zip文件和unzip.php文件上传到浏览器并加载unzip.php页面。

+0

没有任何形式的访问,这是为了让其他人上传像PhpBB文件到他们的FTP目录..谢谢你试图帮助 – Beater

+0

不幸的是,解压缩是一个需要在解压缩的机器上运行的命令发生。如果您没有SSH或Telnet访问权限,并且FTP帐户不包含可通过网络访问的文件夹,则一旦启动,就无法将其解压缩。不过,您可以创建一个清单文件来描述zip归档文件中的所有内容,并在需要的时候发送它。我其实不明白为什么你需要将它们解压缩,如果它不是一个网络访问的位置。 – wwwslinger

0

这是在您的FTP文件夹中提取的代码,下面的代码创建一个新的PHP文件副本,并运行它:

$path = getcwd(); 

$zip = new ZipArchive; 

$res = $zip->open('yourZippedFolder.zip'); 

if ($res === TRUE) { 

    $zip->extractTo($path.'/maunil/'); 

    $zip->close(); 

    echo 'Successfully Extracted'; 

} 

else 
{ 

echo 'failed to Extract'; 

} 
相关问题