Table of Contents

DownloadUtility

Layer: Utility · Source: lib/utility/download-handler.php:16 (lines 16–208)


class DownloadUtility

Core utility class for handling file downloads

Docblock Metadata

Tag Value
@category Utility Class
@author M.Noermoehammad
@license MIT
@version 1.0
@since Since Release 1.0

Inheritance

No parent, interface or trait. This is a root type.

Constants (2)

Visibility Name Value Line
- CHUNK_SIZE 8192; 18
- DEFAULT_EXPIRY 28800; 19

Properties (0)

None declared.

Methods (9)

Visibility Method Summary Line
public static setDownloadHeaders() Set download headers for file delivery 29
public static validateDownloadRequest() Validate download request by identifier 45
public static isHotlinkingAllowed() Check if hotlinking is allowed based on referer 57
public static isMimeTypeAllowed() Check if MIME type is allowed based on settings 77
public static deliverFile() Deliver file to client with streaming 91
public static getMimeType() Get MIME type of a file 117
public static sanitizeFilePath() Sanitize file path to prevent traversal attacks 143
public static isExpired() Check if download link has expired 164
private static getMimeTypeDictionary() Get basic MIME type dictionary 174

setDownloadHeaders()

public static function setDownloadHeaders($filename, $mimeType, $filesize)

lines 29–37 (9)

Set download headers for file delivery

Parameter Type Default Description
$filename (untyped) required none
$mimeType (untyped) required none
$filesize (untyped) required none

Returns: (none declared) — void

validateDownloadRequest()

public static function validateDownloadRequest($identifier)

lines 45–48 (4)

Validate download request by identifier

Parameter Type Default Description
$identifier (untyped) required none

Returns: (none declared) — bool

isHotlinkingAllowed()

public static function isHotlinkingAllowed($referer, $allowedDomains = [])

lines 57–69 (13)

Check if hotlinking is allowed based on referer

Parameter Type Default Description
$referer (untyped) required none
$allowedDomains (untyped) [] none

Returns: (none declared) — bool

isMimeTypeAllowed()

public static function isMimeTypeAllowed($mimeType)

lines 77–81 (5)

Check if MIME type is allowed based on settings

Parameter Type Default Description
$mimeType (untyped) required none

Returns: (none declared) — bool

deliverFile()

public static function deliverFile($filepath, $filename, $mimeType)

lines 91–109 (19)

Deliver file to client with streaming

Parameter Type Default Description
$filepath (untyped) required none
$filename (untyped) required none
$mimeType (untyped) required none

Returns: (none declared) — void

getMimeType()

public static function getMimeType($filepath)

lines 117–135 (19)

Get MIME type of a file

Parameter Type Default Description
$filepath (untyped) required none

Returns: (none declared) — string

sanitizeFilePath()

public static function sanitizeFilePath($filename)

lines 143–156 (14)

Sanitize file path to prevent traversal attacks

Parameter Type Default Description
$filename (untyped) required none

Returns: (none declared) — string|false

isExpired()

public static function isExpired($beforeExpired)

lines 164–167 (4)

Check if download link has expired

Parameter Type Default Description
$beforeExpired (untyped) required none

Returns: (none declared) — bool

getMimeTypeDictionary()

private static function getMimeTypeDictionary()

lines 174–207 (34)

Get basic MIME type dictionary

Takes no parameters.

Returns: (none declared) — array


This page is generated from source by 'tools/gendoc'. Edits will be overwritten.