Properly test if the file requested (cover or book) exists and send a 404 if it doesn't. Should fix #70
This commit is contained in:
parent
f90077154f
commit
f408a71f80
1
book.php
1
book.php
|
@ -357,6 +357,7 @@ class Book extends Base {
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$data = $this->getDataById ($idData);
|
$data = $this->getDataById ($idData);
|
||||||
|
if (!$data) return NULL;
|
||||||
$file = $data->name . "." . strtolower ($data->format);
|
$file = $data->name . "." . strtolower ($data->format);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
24
fetch.php
24
fetch.php
|
@ -10,6 +10,13 @@
|
||||||
require_once ("book.php");
|
require_once ("book.php");
|
||||||
require_once ("data.php");
|
require_once ("data.php");
|
||||||
|
|
||||||
|
function notFound () {
|
||||||
|
header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
|
||||||
|
header("Status: 404 Not Found");
|
||||||
|
|
||||||
|
$_SERVER['REDIRECT_STATUS'] = 404;
|
||||||
|
}
|
||||||
|
|
||||||
global $config;
|
global $config;
|
||||||
$expires = 60*60*24*14;
|
$expires = 60*60*24*14;
|
||||||
header("Pragma: public");
|
header("Pragma: public");
|
||||||
|
@ -27,6 +34,23 @@
|
||||||
$book = Book::getBookById($bookId);
|
$book = Book::getBookById($bookId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!$book) {
|
||||||
|
notFound ();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($book && ($type == "jpg" || empty ($config['calibre_internal_directory']))) {
|
||||||
|
if ($type == "jpg") {
|
||||||
|
$file = $book->getFilePath ($type);
|
||||||
|
} else {
|
||||||
|
$file = $book->getFilePath ($type, $idData);
|
||||||
|
}
|
||||||
|
if (!$file || !file_exists ($file)) {
|
||||||
|
notFound ();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
switch ($type)
|
switch ($type)
|
||||||
{
|
{
|
||||||
case "jpg":
|
case "jpg":
|
||||||
|
|
Loading…
Reference in a new issue