Documentation

Upload
in package

PHP Library to help you build your own file sharing website.

Tags
version
1.5.3
category

File_Upload

author

fariscode farisksa79@gmail.com

license

MIT

link
https://github.com/farisc0de/PhpFileUploading

Table of Contents

$controller  : string
Class Controller Path
$file_id  : string
File ID for the database
$files  : array<string|int, mixed>
Array for the all uploaded files informations
$filter_array  : array<string|int, mixed>
Array For File Protection Filter
$hash_id  : int
Image minimum width
$hash_name  : int
Image minimum width
$logs  : array<string|int, mixed>
System Logs Array
$max_height  : int
Image miximum height
$max_width  : int
Image miximum width
$message  : array<string|int, mixed>
Array list of error codes and the messages
$min_height  : int
Image minimum height
$min_width  : int
Image minimum width
$name_array  : array<string|int, mixed>
Array For Filename Protection Filter
$site_url  : string
Website URL to use with Download URL
$size  : int
Size limit for protection
$upload_folder  : array<string|int, mixed>
Array For the upload folder data
$upload_input  : array<string|int, mixed>
HTML File Input
$user_id  : string
User ID for the database
__construct()  : void
Class Constructor to initialize attributes
addFile()  : void
Function to add a file to the files array
addLog()  : void
Add a message the system log
callback()  : mixed
Create a callback function when needed after or before an operation
checkDimenstion()  : bool
Extra Firewall 1: Check an image dimenstions aginst the class dimenstions
checkExtension()  : bool
Firewall 1: Check File Extension
checkForbidden()  : bool
Firewall 3: Check File Name is Forbidden
checkIfNotEmpty()  : bool
Function to check if the HTML input is empty or not
checkMime()  : bool
Firewall 2: Check File MIME Type
checkSize()  : bool
Firewall 4: Check file size limit
createUploadFolder()  : void
Function to create an upload folder and secure it
createUserCloud()  : true
Create a folder for a spesfic user
enableProtection()  : void
Enable File Uploading Protection and Filters
fixArray()  : array<string|int, mixed>
Fix file input array to make it easy to iterate through it
fixintOverflow()  : float
Ensure correct value for big ints
formatBytes()  : string
Function that format file bytes to a readable format
generateDeleteLink()  : string
Generate a delete link
generateDirectDownloadLink()  : string
Generate a direct download link
generateDownloadLink()  : string
Generate a download link
generateFileID()  : string
Generate a Uniqe ID for each uploaded file
generateQrCode()  : string
Generate a Qr Code of the download url
generateUserID()  : string
Generate a User ID for each uploaded file
getDate()  : int|bool
Get the date of the uploaded file
getExtension()  : string
Function to return the file input extension
getFileID()  : string
Get the unique file id
getFiles()  : array<string|int, mixed>
Function to return an array with all the uploaded files information
getFileType()  : string
Function that return the uploaded file MIME type
getJSON()  : string
Get all the uploaded file information in JSON
getLog()  : int
Get a system log message by an array index id
getLogs()  : array<string|int, mixed>
Get all logs from system log to view them
getMessage()  : string
Function to get a log message using a message index id
getName()  : string
Return the name of the uploaded file
getSize()  : float
Return the size of the uploaded file as bytes
getTempName()  : string
Return the PHP Generated name for the uploaded file
getUploadDirFiles()  : array<string|int, mixed>|bool
Return the files from the upload folder to view them
getUserCloud()  : mixed
getUserID()  : string
Get the unique user id for security
hashName()  : true
Return an "SHA1 Hashed File Name" of the uploaded file
isDir()  : bool
Check if a directory exist and it is a real directory
isFile()  : bool
Check if a file exist and it is a real file
isImage()  : bool
Extra Firewall 2: Function to check if uploaded file is an image
moveFile()  : bool
Function to upload file to the server using chunck system
protectFoler()  : void
Function to potect a folder
sanitize()  : string
Function that helps with input filter and sanitize
setController()  : void
Function to set the controller when needed
setFileID()  : void
Set the unique file id manualy when needed
setForbiddenFilter()  : void
Set Forbidden array to a custom list when needed
setINI()  : void
Set php.ini settings using an array
setMaxDimenstion()  : void
Function to set the miximum class image dimenstions to validate them
setMinDimenstion()  : void
Function to set the minimum class image dimenstions to validate them
setProtectionFilter()  : void
Set Extension array to a custom list when needed
setSiteUrl()  : void
Set the site url manualy when needed to generate links
setSizeLimit()  : void
Set file size limit when needed
setUpload()  : void
Function to set upload input when needed
setUploadController()  : void
Set the upload controller file
setUploadFolder()  : void
Set upload folder when needed
setUserID()  : void
Set the unique user id manualy when needed
sizeInBytes()  : float
Return any type of readable storage size to bytes
upload()  : bool
Function to upload the file to the server
getMime()  : string
Function to get the MIME type using the server

Properties

$controller

Class Controller Path

private string $controller

$file_id

File ID for the database

private string $file_id

$files

Array for the all uploaded files informations

private array<string|int, mixed> $files = []

$filter_array

Array For File Protection Filter

private array<string|int, mixed> $filter_array = []

$hash_id

Image minimum width

private int $hash_id

$hash_name

Image minimum width

private int $hash_name

$logs

System Logs Array

private array<string|int, mixed> $logs = []

$max_height

Image miximum height

private int $max_height

$max_width

Image miximum width

private int $max_width

$message

Array list of error codes and the messages

private array<string|int, mixed> $message = [0 => "File has been uploaded.", 1 => "Invalid file format.", 2 => "Failed to get MIME type.", 3 => "File is forbidden.", 4 => "Exceeded filesize limit.", 5 => "Please select a file", 6 => "File already exist.", 7 => "Failed to move uploaded file.", 8 => "The uploaded file's height is too large.", 9 => "The uploaded file's width is too large.", 10 => "The uploaded file's height is too small.", 11 => "The uploaded file's width is too small.", 12 => "The uploaded file's is too small.", 13 => "The uploaded file is not a valid image.", 14 => "Opreation does not exist."]

$min_height

Image minimum height

private int $min_height

$min_width

Image minimum width

private int $min_width

$name_array

Array For Filename Protection Filter

private array<string|int, mixed> $name_array = []

$site_url

Website URL to use with Download URL

private string $site_url

$size

Size limit for protection

private int $size

$upload_folder

Array For the upload folder data

private array<string|int, mixed> $upload_folder = []

Example: ["folder_name" => "upload", "folder_path" => "upload/"]

$upload_input

HTML File Input

private array<string|int, mixed> $upload_input

Example: $_FILES['file']

$user_id

User ID for the database

private string $user_id

Methods

__construct()

Class Constructor to initialize attributes

public __construct([array<string|int, mixed> $upload_input = null ][, array<string|int, mixed> $upload_folder = [] ][, string $controller = null ][, mixed $site_url = '' ][, string $upload_controller = "upload.php" ][, int $size = "5 GB" ][, int $max_height = null ][, int $max_width = null ][, int $min_height = null ][, int $min_width = null ][, string $file_id = null ][, string $user_id = null ]) : void
Parameters
$upload_input : array<string|int, mixed> = null

An array of the upload file information coming from $_FILES

$upload_folder : array<string|int, mixed> = []

An array that contain the upload folder full path and name

$controller : string = null

The folder name of folder that contains the json filters and the class file

$site_url : mixed = ''
$upload_controller : string = "upload.php"

The upload controller that contains the factory code like upload.php

$size : int = "5 GB"

The miximum size that the class allow to upload

$max_height : int = null

The miximum image height allowed

$max_width : int = null

The miximum image width allowed

$min_height : int = null

The minimum image height allowed

$min_width : int = null

The minimum image width allowed

$file_id : string = null

A uniqge if for the file to validate that the file exist

$user_id : string = null

A uniqge if for the user to validate the file owner

Return values
void —

addFile()

Function to add a file to the files array

public addFile(string $json_string) : void
Parameters
$json_string : string

The JSON string the contains the file information

Return values
void —

addLog()

Add a message the system log

public addLog(mixed $message[, mixed $id = null ]) : void
Parameters
$message : mixed

The message id from the messsages array or as raw string

$id : mixed = null

The array index that you want to assign the message too

Return values
void —

callback()

Create a callback function when needed after or before an operation

public callback(callable $function[, mixed $args = [] ]) : mixed
Parameters
$function : callable

A callback function to execute

$args : mixed = []

A single paramter or an array that contains multiple paramters

Return values
mixed —

Return the callback function output

checkDimenstion()

Extra Firewall 1: Check an image dimenstions aginst the class dimenstions

public checkDimenstion([int $opreation = 2 ]) : bool
Parameters
$opreation : int = 2

Filters opreations from 0 to 5

Return values
bool —

Return true if an image size passed this filter otherwise false

checkExtension()

Firewall 1: Check File Extension

public checkExtension() : bool
Return values
bool —

Return true it the uploaded file extenstion is allowed

checkForbidden()

Firewall 3: Check File Name is Forbidden

public checkForbidden() : bool
Return values
bool —

Return true if the name is forbidden

checkIfNotEmpty()

Function to check if the HTML input is empty or not

public checkIfNotEmpty() : bool
Return values
bool —

Return true if the the input contain a file false otherwise

checkMime()

Firewall 2: Check File MIME Type

public checkMime() : bool
Return values
bool —

Return true if the uploaded file MIME type is allowed

checkSize()

Firewall 4: Check file size limit

public checkSize() : bool
Return values
bool —

Return true if the uploaded file size does not exceed the limit

createUploadFolder()

Function to create an upload folder and secure it

public createUploadFolder(string $folder_name) : void
Parameters
$folder_name : string

The folder name you want to create as an upload folder

Return values
void —

createUserCloud()

Create a folder for a spesfic user

public createUserCloud(mixed $main_upload_folder) : true
Parameters
$main_upload_folder : mixed
Return values
true —

Returns true if the folder is created

enableProtection()

Enable File Uploading Protection and Filters

public enableProtection() : void
Return values
void —

fixArray()

Fix file input array to make it easy to iterate through it

public fixArray(array<string|int, mixed> $file_post) : array<string|int, mixed>
Parameters
$file_post : array<string|int, mixed>

The unarranged files array to fix

Return values
array<string|int, mixed> —

Return a fixed and arranged files array based on PHP standerds

fixintOverflow()

Ensure correct value for big ints

public fixintOverflow(int $int) : float
Parameters
$int : int
Return values
float —

formatBytes()

Function that format file bytes to a readable format

public formatBytes(int $bytes[, int $precision = 2 ]) : string

Example: 7201450 to 7.2 MB

Parameters
$bytes : int

The file size that you want to convert in bytes

$precision : int = 2

The precision of the convertion how many digits you want after the dot

Return values
string —

Return the bytes as readable format

Generate a delete link

public generateDeleteLink() : string
Return values
string —

Return a well formatted delete file link with a custom delete page

Generate a direct download link

public generateDirectDownloadLink() : string
Return values
string —

Return a well formatted direct download link without a custom download page

Generate a download link

public generateDownloadLink() : string
Return values
string —

Return a well formatted download link with a custom download page

generateFileID()

Generate a Uniqe ID for each uploaded file

public generateFileID() : string
Return values
string —

Return the uinque id hashed using sha1

generateQrCode()

Generate a Qr Code of the download url

public generateQrCode([string $qr_size = "150x150" ]) : string
Parameters
$qr_size : string = "150x150"

The size ot the qr code image

Return values
string —

Return the qr code image url to display

generateUserID()

Generate a User ID for each uploaded file

public generateUserID([mixed $disable_session = false ]) : string
Parameters
$disable_session : mixed = false
Return values
string —

Return the user id hashed using sha1

getDate()

Get the date of the uploaded file

public getDate() : int|bool
Return values
int|bool —

Return the file last modification time or false if an error occurred

getExtension()

Function to return the file input extension

public getExtension() : string
Return values
string —

Return the uploaded file extenstion as string

getFileID()

Get the unique file id

public getFileID() : string
Return values
string —

Return the uploaded file uniqe id

getFiles()

Function to return an array with all the uploaded files information

public getFiles() : array<string|int, mixed>
Return values
array<string|int, mixed> —

getFileType()

Function that return the uploaded file MIME type

public getFileType() : string
Return values
string —

Return the file MIME type as string

getJSON()

Get all the uploaded file information in JSON

public getJSON() : string
Return values
string —

Return a JSON string that contains the uploaded file information

getLog()

Get a system log message by an array index id

public getLog(mixed $log_id) : int
Parameters
$log_id : mixed

The logs id to retrive the message

Return values
int —

Return the message id to use with the messages array

getLogs()

Get all logs from system log to view them

public getLogs() : array<string|int, mixed>
Return values
array<string|int, mixed> —

Return an array that contains all the logs in class logs system

getMessage()

Function to get a log message using a message index id

public getMessage(int $index) : string
Parameters
$index : int

The message index from 1 to 14

Return values
string —

Return the log message as string

getName()

Return the name of the uploaded file

public getName() : string
Return values
string —

Return the name of the uploaded file as string

getSize()

Return the size of the uploaded file as bytes

public getSize() : float
Return values
float —

Return the uploaded file size as bytes

getTempName()

Return the PHP Generated name for the uploaded file

public getTempName() : string
Return values
string —

return the temp name that PHP generated for uploaded file

getUploadDirFiles()

Return the files from the upload folder to view them

public getUploadDirFiles() : array<string|int, mixed>|bool
Return values
array<string|int, mixed>|bool —

Return an array the contains all files in the upload folder or false if an error occurred

getUserCloud()

public getUserCloud(mixed $main_upload_folder) : mixed
Parameters
$main_upload_folder : mixed
Return values
mixed —

getUserID()

Get the unique user id for security

public getUserID() : string
Return values
string —

Return the unique user id

hashName()

Return an "SHA1 Hashed File Name" of the uploaded file

public hashName() : true
Return values
true —

Return the file real name using getName() function and hash it using SHA1

isDir()

Check if a directory exist and it is a real directory

public isDir(string $dir_name) : bool
Parameters
$dir_name : string

The name of the folder you want check if it exist

Return values
bool —

Return true if the folder exist or false otherwise

isFile()

Check if a file exist and it is a real file

public isFile(string $file_name) : bool
Parameters
$file_name : string

The file you want to cheack if it exist

Return values
bool —

Return true if the exist or false otherwise

isImage()

Extra Firewall 2: Function to check if uploaded file is an image

public isImage() : bool
Return values
bool —

Return true if the uploaded file is a real image otherwise false

moveFile()

Function to upload file to the server using chunck system

public moveFile(string $filename) : bool
Parameters
$filename : string

The file name you want to use as uploaded name

Return values
bool —

Return true if the file is uploaded or false otherwise

protectFoler()

Function to potect a folder

public protectFoler(string $folder_name) : void
Parameters
$folder_name : string

The folder name you want protect

Return values
void —

sanitize()

Function that helps with input filter and sanitize

public sanitize(string $value) : string
Parameters
$value : string

The value of the malicious string you want to sanitize

Return values
string —

Return the sanitized string

setController()

Function to set the controller when needed

public setController(string $controller) : void
Parameters
$controller : string

The folder name of folder that contains the json filters and the class file

Return values
void —

setFileID()

Set the unique file id manualy when needed

public setFileID([string $file_id = "" ]) : void
Parameters
$file_id : string = ""

The unique file id that you want

Return values
void —

setForbiddenFilter()

Set Forbidden array to a custom list when needed

public setForbiddenFilter(array<string|int, mixed> $forbidden_array) : void
Parameters
$forbidden_array : array<string|int, mixed>

An array that contains the forbidden file names like php shell names

Example: ["aaa.php", "file.exe"]

Return values
void —

setINI()

Set php.ini settings using an array

public setINI(array<string|int, mixed> $ini_settings) : void

Example: setINI(["file_uploads"=>1])

Parameters
$ini_settings : array<string|int, mixed>

An array the contains the ini settings variables and values

Return values
void —

setMaxDimenstion()

Function to set the miximum class image dimenstions to validate them

public setMaxDimenstion([int $height = null ][, int $width = null ]) : void
Parameters
$height : int = null

The miximum image height

$width : int = null

The miximum image width

Return values
void —

setMinDimenstion()

Function to set the minimum class image dimenstions to validate them

public setMinDimenstion([int $height = null ][, int $width = null ]) : void
Parameters
$height : int = null

The minimum image height

$width : int = null

The minimum image width

Return values
void —

setProtectionFilter()

Set Extension array to a custom list when needed

public setProtectionFilter(array<string|int, mixed> $filter_array) : void
Parameters
$filter_array : array<string|int, mixed>

An array that contains the allowed file extensions

Return values
void —

setSiteUrl()

Set the site url manualy when needed to generate links

public setSiteUrl([string $site_url = "" ]) : void
Parameters
$site_url : string = ""

The site url you want to genearate urls for

Return values
void —

setSizeLimit()

Set file size limit when needed

public setSizeLimit(int $size) : void
Parameters
$size : int

The size you want to limit for each uploaded file

Return values
void —

setUpload()

Function to set upload input when needed

public setUpload(array<string|int, mixed> $upload_input) : void
Parameters
$upload_input : array<string|int, mixed>

An array of the upload file information coming from $_FILES

Return values
void —

setUploadController()

Set the upload controller file

public setUploadController(string $upload_controller) : void
Parameters
$upload_controller : string

The upload controller that contains the factory code like upload.php

Return values
void —

setUploadFolder()

Set upload folder when needed

public setUploadFolder(array<string|int, mixed> $folder_name) : void
Parameters
$folder_name : array<string|int, mixed>

An array contains the upload folder information full path and name

Example: ["folder_name" => "upload", "folder_path" => realpath("upload")]

Return values
void —

setUserID()

Set the unique user id manualy when needed

public setUserID([string $user_id = "" ]) : void
Parameters
$user_id : string = ""

The unique file id that you want

Return values
void —

sizeInBytes()

Return any type of readable storage size to bytes

public sizeInBytes(int $size) : float

Example: 7.2 MB to 7201450

Parameters
$size : int

The readable size that you want to convert to bytes

Return values
float —

Return the bytes size as float

upload()

Function to upload the file to the server

public upload() : bool
Return values
bool —

Return true if the file is uploaded or false otherwise

getMime()

Function to get the MIME type using the server

private getMime() : string
Return values
string —

Return the file MIME type as string

Search results