From 138348bbd1318a3bc2ee5112eee44d385b21751e Mon Sep 17 00:00:00 2001 From: Malf Furious Date: Sun, 4 Jun 2017 14:45:23 -0400 Subject: Update df function serveResource() Added optional parameter for resource's filename. If given, a Content-Disposition header will be delivered to the client. --- app/df.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'app/df.php') diff --git a/app/df.php b/app/df.php index a425d57..9581cae 100644 --- a/app/df.php +++ b/app/df.php @@ -31,15 +31,19 @@ require_once "class/user.class.php"; * request. When finished, this function will exit PHP and terminate * this script. */ -function serveResource(string $uri) : void +function serveResource(string $uri, ?string $filename = NULL) : void { $f = fopen($uri, "rb"); if (!$f) exit; - header("Content-type: " . mime_content_type($uri)); - header("Content-length: " . filesize($uri)); + header("Content-Type: " . mime_content_type($uri)); + header("Content-Length: " . filesize($uri)); + + if ($filename) + header("Content-Disposition: attachment; filename='" . $filename . "'"); + fpassthru($f); fclose($f); -- cgit v1.2.3 From f43bd09b8287e3876b5a7396e6bb263c35e3972a Mon Sep 17 00:00:00 2001 From: Malf Furious Date: Sun, 4 Jun 2017 14:59:25 -0400 Subject: Update df script to support message attachments Now, if a mesg guid is requested under attach/, the attachment file is served and offers the browser the content-disposition for that file. --- app/df.php | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'app/df.php') diff --git a/app/df.php b/app/df.php index 9581cae..92dd9dd 100644 --- a/app/df.php +++ b/app/df.php @@ -13,6 +13,7 @@ */ require_once "class/user.class.php"; +require_once "class/mesg.class.php"; /* * This file is a proxy script for fetching resources from the /dynmic @@ -93,6 +94,11 @@ function main(string $dir, string $guid) : void case "bgs": serveResource("dynmic/bgs/" . $guid); break; + + case "attach": + $mesg = new mesg($guid); + serveResource("dynmic/attach/" . $guid, $mesg->attachment); + break; } } catch (Exception $e) -- cgit v1.2.3 From d52b67bbc212f85cc6e80e107029bda4d4445b94 Mon Sep 17 00:00:00 2001 From: Malf Furious Date: Sun, 4 Jun 2017 18:03:16 -0400 Subject: Fix bug in function serveResource() It is necessary to use double-quotes in the Content-Disposition header. --- app/df.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/df.php') diff --git a/app/df.php b/app/df.php index 92dd9dd..3f648ad 100644 --- a/app/df.php +++ b/app/df.php @@ -43,7 +43,7 @@ function serveResource(string $uri, ?string $filename = NULL) : void header("Content-Length: " . filesize($uri)); if ($filename) - header("Content-Disposition: attachment; filename='" . $filename . "'"); + header("Content-Disposition: attachment; filename=\"" . $filename . "\""); fpassthru($f); fclose($f); -- cgit v1.2.3