2014-02-06 2 views
0

나는 ePub 파일을 다운로드하는 PHP 응용 프로그램을 만들고 있습니다. 코드의 일부로 불법 복제를 방지하기 위해 데이터베이스에 원본 다운로드 정보를 추적하는 데 사용할 수있는 고유 한 식별자를 추가하고 있습니다.저장하기 ePub 파일에 대한 덧글

PHP ZipArchive 함수를 사용하여 파일에 보관 주석을 추가하고 있지만 코멘트가있는 경우 Adobe Digital 에디션에서 ePub 파일을 열 수없는 것으로 보입니다. 댓글이 삭제되면 잘 열리기 때문에 이전에 다른 사람이이 문제를 겪고 있는지 여부와 Adobe Digital Editions가 열 수있는 ePub 파일에 댓글을 추가 할 수있는 방법이 있는지 알고 싶습니다. 아래는 내가 사용하는 코드입니다 : 당신이 사본이 원본 볼 수 있듯이

public function secureEpub($file, $download_id, $filepath){ 

    //GENERATE RANDOM FILE NAME 
    $newFile = uniqid().".epub"; 
    //COPY EPUB AND WORK FROM THAT VERSION 
    copy($file, $filepath.$newFile); 

    //TREAT EPUB FILE AS ORDINARY ZIP ARCHIVE 
    //OPEN AND EXTRACT EPUB 
    $zip = new ZipArchive; 
    $res = $zip->open($filepath.$newFile); 
    if($res === TRUE){ 
     //ZIP ARCHIVE HAS OPENED SUCCESSFULLY - SET ARCHIVE COMMENT TO DOWNLOAD ID 
     $zip->setArchiveComment($download_id); 
     $zip->close(); 
    } else { 
     error_log('Unable to open ePub (' . $filepath.$newFile . ') as Directory'); 
     return false; 
     exit; 
    } 
    //ONCE CHANGE HAS BEEN MADE CLOSE THE ARCHIVE AND RETURN TEMP FILE 
    return $filepath.$newFile; 

} 

는, 아카이브 주석이 다음 (나중에 삭제) 파일을 반환 만듭니다. ePub (ADE 용)를 손상시키지 않고이를 달성 할 수있는 방법이 있습니까?

내가 어떤 의미를 만든 적이 없다 알려줘 : D

P.S을 : 그냥 명확히하기 위해, 다운로드가 잘 작동하고 의견이 제대로 적용됩니다. 다른 ePub 독자가 잘 관리하는 동안 ADE가 열 수 없다는 것입니다. 내가 잘못 생각하고 있니?

+0

epub DRM이 보호되어 있습니까? 그렇다면 주석은 DRM 시스템이 의존하는 일부 체크섬을 엉망으로 만들 수 있으며 따라서 푸딩을 epub 파일에서 만들 수 있습니다. – Boldewyn

+0

안녕하세요 @ 볼드윈, ePub은 DRM으로 보호되지 않습니다. – JackWillDavis

답변

0

그래, 내가 해결책을 생각해 냈다. 세부 사항이 포함 된 ZIP 파일 안에 새로운 파일이나 디렉토리를 추가 할 수 있습니다.

그래서, 당신은 같은 것을 사용할 수 있습니다

$zip->addFromString('test.txt', $download_id); 

또는 같은 다운로드 후라는 이름의 디렉토리를 만듭니다

$zip->addEmptyDir($download_id); 

아마 좀 더 모호한 당신이 얻을 경우 비록 이름을 가진 것을 권하고 싶습니다 내가 한 것처럼 붙어 :)

감사합니다