Working with File Uploads
Overview
The UploadFile class handles the various tasks when uploading a file.
Retrieving a Files Upload Location
To retrieve a files upload path, you can use the get_upload_path
method and pass in the file's GUID id.
require_once 'include/upload_file.php';
UploadFile::get_upload_path($file_id);
This method will normally return the path as:
upload://1d0fd9cc-02e5-f6cd-1426-51a509a63334
Retrieving a Files Full File System Location
To retrieve a files full system path, you can use the get_upload_path
and real_path
methods as shown below:
require_once 'include/upload_file.php';
UploadFile::realpath(UploadFile::get_upload_path($file_id));
This method will normally return the path where they are uploaded to. Each uploaded file is now stored in a subdirectory derived from the UUID filename. Existing files will be moved into subdirectories during upgrade. For example, the file 3657325a-bdd6-11eb-9a6c-08002723a3b8
will now be stored in the ./upload/25a/
subdirectory. These UID character locations were selected to ensure even distribution of files across the new subdirectories.
Retrieving a Files Contents
As an alternative to using file_get_contents
or sugar_file_get_contents
, you can retrieve the contents of a file using the get_file_contents method as shown below:
require_once 'include/upload_file.php';
$file = new UploadFile();
//get the file location
$file->temp_file_location = UploadFile::get_upload_path($file_id);
$file_contents = $file->get_file_contents();
Duplicating a File
To duplicate an uploaded file, you can use the duplicate_file
method by passing in the files current id and the id you would like it copied to as shown below:
require_once 'include/upload_file.php';
$uploadFile = new UploadFile();
$result = $uploadFile->duplicate_file($oldFileId, $newFileId);