2012-09-01 3 views
-1

편집 PHP에서 FTP로 만 업로드 후 손상된이 정확히 내 문제를 설명,하지만 난 PHP와 그것을 극복 할 수 없습니다 내가 만드는 PHP의 자동 백업 스크립트를 작성하고 http://kb.winzip.com/kb/entry/149ZIP 아카이브

을 내 웹 사이트의 파일 및 데이터베이스의 백업 복사본을 생성하고 이러한 파일을 재해 복구를 위해 원격 FTP 사이트에 보냅니다. 내 SQL과 ZIP 파일 (내 SQL에 의도 된 말장난 없음)은 서버에서 완벽하게 생성되지만 내 ZIP 아카이브는 FTP 사이트에 업로드 될 때 손상됩니다.

나는를 생성 한 서버에서 ZIP 파일을 다운로드하고 그것을 문제를 열었다 없습니다. 그러나 ZIP 추출 프로그램이 FTP 사이트로 전송되고 거기에서 다운로드되면 동일한 파일을 열 수있는 것으로 보이지 않습니다. SQL 파일을 열어도 아무런 문제가 없습니다.

나는 아카이브가 OK입니다 확신이 아니라, 오류는 파일의 전송에있다 : 당신이에서 볼 수있는 ZIP 파일의 전송에 아무 잘못이

$conn_id = ftp_connect("ftp.example.com"); 
$login_result = ftp_login($conn_id, "johnny1", "[email protected] $tr0nG [email protected]!"); 
$dbBackup = fopen('database-backup.sql', 'r'); 
$filesBackup = fopen('files-backup.zip', 'r'); 

if (ftp_fput($conn_id, 'database/backup.sql', $dbBackup, FTP_BINARY) && 
    ftp_fput($conn_id, 'files/backup.zip', $filesBackup, FTP_BINARY)) { 
    echo "Done!<br>"; 
} else { 
    echo "Failed"; 
    exit; 
} 

ftp_close($conn_id); 
fclose($dbBackup); 
fclose($filesBackup); 

있는가 이리?

감사합니다.

+0

는 흥미로운 결과 텍스트 수율 업로드 된 zip 파일을 볼 수 있습니까? –

+0

@arxanas는 아니 ... 그냥 다음과 같이 시작합니다 : PK '의'± € Ã

+0

어떻게 FTP 연결 당 하나 개의 파일 작성에 대한!? –

답변

1

나는 나의 우분투 시스템에서 코드를 테스트 한 그것은 문제없이 일했다.
이것은 아마도 FTP 서버 문제 일 것입니다. 다른 FTP 서버에 파일을 업로드해야합니다.

0

당신은 바이너리 모드에서 zip 파일을 여는 시도 할 수 있습니다. It's recommended.

이식성을 위해 fopen()을 사용하여 파일을 열 때 항상 'b'플래그를 사용하는 것이 좋습니다.

fopen('files-backup.zip', 'rb'); 
+0

해보겠습니다. ;) –

+0

죄송합니다. 그것은 작동하지 않았다. WinRAR에서 "예기치 않은 아카이브 종료"오류가 발생합니다. –

관련 문제