我正在研究下载ePub文件的PHP应用程序。作为代码的一部分,我添加了一个唯一标识符,可用于跟踪数据库中的原始下载信息以打击盗版行为。保存档案评论至ePub文件
我正在使用PHP ZipArchive函数向该文件添加归档注释,但似乎Adobe Digital Edition无法在存在评论时打开ePub文件。当评论被删除,它打开罚款,所以我只想看看是否有其他人之前有这个问题,如果有一种方法可以添加评论到ePub文件,这将允许Adobe Digital Editions打开它。下面是我使用的代码:
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无法打开它。我是否以错误的方式处理它?
epub DRM是否受到保护?如果是,评论可能会混淆DRM系统依赖的一些校验和,从而使布丁不在epub文件中。 – Boldewyn
Hi @Boldewyn,没有ePub不受DRM保护 – JackWillDavis