2013-10-29 38 views
0

我想在第二個ftp帳戶中解壓文件?從另一個ftp解壓文件

我想這個腳本,但它不工作:

$zip = new ZipArchive; 
$zip->open('ftp://user:[email protected]/tmp/file.zip'); 
$zip->extractTo('ftp://user:[email protected]/public_html/'); 
$zip->close(); 

在嘗試調試,我增加了以下內容:

$zip = new ZipArchive; 
$res = $zip->open('ftp://user:[email protected]/tmp/file.zip'); 
if ($res === TRUE) { 
    echo 'ok'; 
    $zip->extractTo('ftp://user:[email protected]/public_html/'); 
    $zip->close(); 
} else { 
    echo 'failed, code:' . $res; 
} 

由此我發現,$zip->open命令失敗,錯誤代碼爲11

我不知道如何進一步調試。有沒有人有什麼建議可能是錯的?

+0

爲什麼你認爲它不起作用?如果你使用你的本地ftp帳戶,同樣的事情會起作用嗎?你有寫權限在你想寫的地方嗎? – Floris

+0

@弗洛伊斯我不知道爲什麼這不起作用,是的,我在這個地方寫了權限(public_html)。該腳本不會返回錯誤,但仍不會提取。 –

+0

@Floris問題打開() –

回答

0

您可以嘗試使用ftp_get()在對其進行操作之前在本地抓取文件。

$conn_id = ftp_connect('host'); 
$login_result = ftp_login($conn_id, 'user', 'password'); 
if (ftp_get($conn_id, 'file.zip', 'tmp/file.zip', FTP_BINARY)) { 
    // Success! File is now at local "file.zip" 

    $zip = new ZipArchive; 
    $zip->open('file.zip'); 
    $zip->extractTo('ftp://user:[email protected]/public_html/'); 
    $zip->close(); 

} else { 
    echo "There was a problem\n"; 
} 

ftp_close($conn_id); 
+0

我試過了,得到這個錯誤:PHP警告:ZipArchive :: close()[ziparchive.close]:無效或單元化的Zip對象 –

+0

如果你看看文件系統,你看到file.zip與PHP文件?: –

+0

是的這項工作,但不提取在FTP上。 –

相關問題