handleUpload("file");
if($upload_result->getStatus() == 'ok') {
$file_info = $upload_result->getData();
$file_name = $file_info->file_name;
$file_ext = $file_info->file_ext;
$public_path = $file_info->public_path;
$renamed = $objFileUpload->renameUploadedFile($file_name, $item_id . $file_ext);
if($renamed) {
$new_file_name = $renamed['file_name'];
$new_public_path = $renamed['public_path'];
}
}
*
*/
class FileUpload extends bFileHandle
{
/**
* @description version of handleUpload to support multiple files using array input
* example: instead of
*
* @param string $input_file_name name of => use: multiple_file
* @param int $max_file_size max file size in bytes accepts, default = 1MB
* @return FileHandleResponse[]
*/
public function handleMultipleUpload(string $input_file_name, int $max_file_size = 1000000) : array
{
$upload_result = [];
for($i = 0; $i < sizeof($_FILES[$input_file_name]['name']); $i++){
$original_uploaded_file_name = $_FILES[$input_file_name]["name"][$i];
$original_uploaded_data = $_FILES[$input_file_name]["tmp_name"][$i];
$upload_result[] = $this->processFile(
$original_uploaded_file_name,
$original_uploaded_data,
'',
$max_file_size
);
}
// clean up
$this->cleanUp();
return $upload_result;
}
/**
* @param string $input_file_name name of (which is upload_file)
* @param int $max_file_size max file size in bytes accepts, default = 1MB
* @param string $fixed_file_name set uploaded name to this fixed name (ie. [item_id].jpg) so old file will be replaced
* @return FileHandleResponse
*/
public function handleUpload(string $input_file_name, string $fixed_file_name='', int $max_file_size = 1000000) : FileHandleResponse
{
if(!$this->setup_success) {
return new FileHandleResponse(AppResponse::ERROR, "Fail to setup");
}
if(!$input_file_name || !isset($_FILES[$input_file_name])) {
return new FileHandleResponse('error', 'no file', null);
}
$original_uploaded_file_name = $_FILES[$input_file_name]["name"] ?? "";
$original_uploaded_data = $_FILES[$input_file_name]["tmp_name"];
$upload_result = $this->processFile(
$original_uploaded_file_name,
$original_uploaded_data,
$fixed_file_name,
$max_file_size
);
// clean up
$this->cleanUp();
return $upload_result;
}
}