Произошла ошибка при открытии Epub из файла EPUB заголовка PHP с помощью библиотеки Epub JS

Я пытаюсь открыть файл Epub с моего собственного сервера.

PHP:

<?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:

 <script>
        var Book = ePub("http://localhost/epub/examples/file.php"); 
        Book.renderTo("area");
 </script>

Произошла ошибка:

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, направленный на файл, вот так:

var Book = ePub("http://localhost/epub/files/1.epub");

Моя цель - просмотреть файл epub, но перед этим мне нужно проверить, может ли пользователь просматривать epub.

Я использую этот плагин для просмотра. https://github.com/futurepress/epub.js

Я использую angularJS. В будущем я буду сохранять его в indexedDB или Web SQL для локального просмотра.

Заранее спасибо!

0 ответов

Скорее обходной путь, чем реальное решение. По какой-то причине, если URL-адрес не заканчивается на.epub, epubjs делает что-то другое в обработке.

Мой исходный URL-адрес:

http://localhost/api.php?getbook=true&externalbookid=a13a9cef-1f83-4695-8cbf-1c0aafbf958e

В JS:

var book = ePub("http://localhost/file.epub?bookexternalid=5090a553-aa97-44a7-85cc-94ad07a6dc44");

Я пошел с htaccess:

RewriteEngine On
RewriteRule file.epub/?$ /api.php?getbook=true&%{QUERY_STRING} [R=301,NC,L]

Это должно решить вашу проблему.

Другие вопросы по тегам