2013-10-29 3 views
0

두 번째 ftp 계정에서 파일을 추출하고 싶습니다. 다른 ftp에서 파일 압축 해제

나는이 스크립트를 시도했지만 작동하지 않습니다이에서

$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 명령이 실패하는 것을 발견 :

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

를 디버깅하기위한 시도로, 나는이 다음에 추가 오류 코드는 11입니다.

추가 디버깅을 위해 무엇을해야할지 모르겠습니다. 누구든지 무엇이 잘못 될지에 대한 제안이 있습니까?

+0

왜 작동하지 않는 걸까요? 로컬 ftp 계정을 사용하는 경우에도 동일한 작업이 수행됩니까? 쓸 곳에서 쓰기 권한을 가지고 있습니까? – Floris

+0

@Floris 나는 이것이 왜 작동하지 않는지 그리고 나는 그 장소 (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

파일 시스템을 살펴보면 PHP와 같은 경로에 file.zip이 로컬로 나타 납니 까? file ?: –

+0

예,이 작품은 작동하지만 ftp에서는 추출 할 수 없습니다. –