X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fattach.php;h=fd428286a6ec9d4ed655e442fe68950e86d2e389;hb=3e797547a37f8c8f22e88965b4a4d278bcc192e0;hp=ae6540201e70f96227a1bf633aec78deaed4384e;hpb=8aa25523721303b6883e1a793f20997f8a33ec0a;p=friendica.git diff --git a/mod/attach.php b/mod/attach.php old mode 100755 new mode 100644 index ae6540201e..fd428286a6 --- a/mod/attach.php +++ b/mod/attach.php @@ -1,11 +1,18 @@ argc != 2) { - notice( t('Item not available.') . EOL); +/** + * @file mod/attach.php + */ +use Friendica\App; +use Friendica\Core\L10n; +use Friendica\Database\DBM; + +require_once 'include/dba.php'; +require_once 'include/security.php'; + +function attach_init(App $a) +{ + if ($a->argc != 2) { + notice(L10n::t('Item not available.') . EOL); return; } @@ -13,15 +20,13 @@ function attach_init(&$a) { // Check for existence, which will also provide us the owner uid - $r = q("SELECT * FROM `attach` WHERE `id` = %d LIMIT 1", - intval($item_id) - ); - if(! count($r)) { - notice( t('Item was not found.'). EOL); + $r = dba::selectFirst('attach', [], ['id' => $item_id]); + if (!DBM::is_result($r)) { + notice(L10n::t('Item was not found.'). EOL); return; } - $sql_extra = permissions_sql($r[0]['uid']); + $sql_extra = permissions_sql($r['uid']); // Now we'll see if we can access the attachment @@ -29,14 +34,22 @@ function attach_init(&$a) { dbesc($item_id) ); - if(! count($r)) { - notice( t('Permission denied.') . EOL); + if (!DBM::is_result($r)) { + notice(L10n::t('Permission denied.') . EOL); return; } + // Use quotes around the filename to prevent a "multiple Content-Disposition" + // error in Chrome for filenames with commas in them header('Content-type: ' . $r[0]['filetype']); - header('Content-disposition: attachment; filename=' . $r[0]['filename']); + header('Content-length: ' . $r[0]['filesize']); + if (isset($_GET['attachment']) && $_GET['attachment'] === '0') { + header('Content-disposition: filename="' . $r[0]['filename'] . '"'); + } else { + header('Content-disposition: attachment; filename="' . $r[0]['filename'] . '"'); + } + echo $r[0]['data']; killme(); // NOTREACHED -} \ No newline at end of file +}