首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Epub JS库从PHP头EPUB文件打开Epub时出错

使用Epub JS库从PHP头EPUB文件打开Epub时出错
EN

Stack Overflow用户
提问于 2016-07-27 18:25:31
回答 1查看 644关注 0票数 2

我正在尝试从我自己的服务器打开Epub文件。

PHP:

代码语言:javascript
复制
<?php
    $filename = '../files/2.epub';
    header('Content-type: application/epub+zip');
    header("Content-Disposition:inline;filename='somefilename.epub'");
    //header('Content-Transfer-Encoding: binary');
    readfile($filename);
?>

Javascript:

代码语言:javascript
复制
 <script>
        var Book = ePub("http://localhost/epub/examples/file.php"); 
        Book.renderTo("area");
 </script>

发生错误:

代码语言:javascript
复制
Navigated to http://localhost/epub/examples/basic.html
core.js:120 GET http://localhost/epub/examples/file.phpMETA-      INF/container.xml 404 (Not Found)EPUBJS.core.request @     core.js:120EPUBJS.Book.loadXml @ book.js:586EPUBJS.Book.loadPackage @     book.js:188EPUBJS.Book.open @ book.js:148EPUBJS.Book @ book.js:115root.ePub @     base.js:48(anonymous function) @ basic.html:95
book.js:204 Could not load book at: META-INF/container.xml(anonymous func  tion) @ book.js:204lib$rsvp$$internal$$tryCatch @     rsvp.js:493lib$rsvp$$internal$$invokeCallback @     rsvp.js:505lib$rsvp$$internal$$publish @    rsvp.js:476lib$rsvp$$internal$$publishRejection @  rsvp.js:419lib$rsvp$asap$$flush @ rsvp.js:1198
book.js:1357 Object {message: null, stack: "Error↵    at XMLHttpRequest.handler (http://localhost/epub/build/epub.js:3493:13)"}

当我像这样使用指向文件的url时,它可以工作:

代码语言:javascript
复制
var Book = ePub("http://localhost/epub/files/1.epub");

我的目标是查看epub文件,但在此之前,我需要验证用户是否可以查看epub。

我使用这个插件来查看。https://github.com/futurepress/epub.js

我使用的是angularJS。将来,我将把它保存在indexedDB或Web SQL中,以供本地查看。

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2019-05-11 23:17:36

与其说是实际的解决方案,不如说是一种变通方法。由于某些原因,如果url不是以.epub结尾,epubjs会在处理上做一些不同的事情。

我的原始url是:

代码语言:javascript
复制
http://localhost/api.php?getbook=true&externalbookid=a13a9cef-1f83-4695-8cbf-1c0aafbf958e

在JS中:

代码语言:javascript
复制
var book = ePub("http://localhost/file.epub?bookexternalid=5090a553-aa97-44a7-85cc-94ad07a6dc44");

我选择了htaccess:

代码语言:javascript
复制
RewriteEngine On
RewriteRule file.epub/?$ /api.php?getbook=true&%{QUERY_STRING} [R=301,NC,L]

这应该可以解决您的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38610331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档