. # $CONF = parse_ini_file('paperweb.ini.php'); if (array_key_exists('doDownload', $_REQUEST)) { $date = @$_REQUEST['date']; $page = @$_REQUEST['page']; $datearg = escapeshellarg($date); $pagearg = escapeshellarg($page); # -M and -R are used instead of -D to avoid storing the data in RAM $json = exec("sudo -u {$CONF['USER']} {$CONF['PATH']} -M {$datearg} -p {$pagearg}"); if ($json) { $meta = json_decode($json, true); $knownetag = trim(@$_SERVER['HTTP_IF_NONE_MATCH'], ' "'); if ($meta['etag'] == $knownetag) { header('HTTP/1.1 304 Not Modified'); } else { $ext = explode('/', $meta['mime'])[1]; header("Content-Type: {$meta['mime']}"); header("ETag: \"{$meta['etag']}\""); header("Cache-Control: public"); header("Content-Disposition: inline; filename=\"{$date}_{$page}.{$ext}\""); passthru("sudo -u {$CONF['USER']} {$CONF['PATH']} -R {$datearg} -p {$pagearg}"); } } } else { ?> PaperWeb, a simple web interface for Paperwork

PaperWeb, a simple web interface for Paperwork