/** * Perform file upload * * @access public * @return boolean */ public static function uploadFiles($inputName, $path, $encryption = false, $newFilename = false, $overwrite = false) { $file = Input::file($inputName); // Instance object File $extension = $file->getClientOriginalExtension(); $filename = $file->getClientOriginalName(); $filenameOrg = $filename; if ($encryption) { mt_srand(); $filename = md5(uniqid(mt_rand())) . "." . $extension; } elseif ($newFilename) { $filename = $newFilename . "." . $extension; } if (!$overwrite) { $i = 0; while (file_exists($path . '/' . $filename)) { $i++; if (!$encryption && !$newFilename) { $baseName = basename($filenameOrg, '.' . $extension); $filename = $baseName . '-' . $i . '.' . $extension; } elseif (!$encryption && $newFilename) { $filename = $newFilename . '-' . $i . '.' . $extension; } else { mt_srand(); $filename = md5(uniqid(mt_rand())) . "." . $extension; } } } $file->move($path, $filename); return $filename; }
private function processUpload($fileName = 'file') { $file = Input::file($fileName); if (!$file->existTempFile()) { return ['success' => false, 'error' => 14, 'message' => 'Temp file doesn\'t exist, may be the file uploaded file is too large']; } $mime = $file->getMimeType(); // MIME Type check $response = ['success' => true, 'action' => 'upload', 'folder' => Input::get('folder'), 'size' => $file->getSize(), 'oldName' => $file->getClientOriginalName(), 'extension' => $file->getClientOriginalExtension(), 'mime' => $mime, 'isImage' => false]; if (Input::get('mimesAccept') != 'false') { $mimes = explode(',', Input::get('mimesAccept')); // MIME Type array creation if (FileManager::isMimeTypeAllowed($mime, $mimes)) { $mimeAllowed = true; } else { $mimeAllowed = false; $response = ['success' => false, 'error' => 2, 'message' => 'MIME type: ' . $mime . ', is not allowed']; } } // Check whether it's a manipulable image file if ($mime == 'image/gif' || $mime == 'image/png' || $mime == 'image/jpeg') { $response['isImage'] = true; if (function_exists('exif_read_data')) { // Check orientation if upload file from iOs $this->checkOrientation($file->getRealPath(), $file->getClientOriginalExtension()); } else { return ['success' => false, 'error' => 19, 'message' => 'Error, please, enabled EXIF extension in your PHP version, to check image orientation']; } list($width, $height) = getimagesize($file->getRealPath()); $response['width'] = $width; $response['height'] = $height; } if (Input::get('mimesAccept') == 'false' || $mimeAllowed) { // If crop is enabled the file must be located in the temp folder in order to edit it if ($response['isImage'] == true && (Input::get('cropActive') == 'true' || Input::get('resizeActive') == 'true' || Input::get('outputExtension') == 'gif' || Input::get('outputExtension') == 'jpg' || Input::get('outputExtension') == 'png')) { $response['name'] = FileManager::uploadFiles($fileName, $this->documentRoot . Input::get('tmpFolder'), Input::get('encryption') === 'true' ? true : false, Input::get('filename') === 'false' || Input::get('filename') === 'null' ? false : Input::get('filename'), Input::get('cropOverwrite') === 'false' || Input::get('cropOverwrite') === 'null' ? false : Input::get('cropOverwrite')); } else { $response['name'] = FileManager::uploadFiles($fileName, $this->documentRoot . Input::get('folder'), Input::get('encryption') === 'true' ? true : false, Input::get('filename') === 'false' || Input::get('filename') === 'null' ? false : Input::get('filename')); } } return $response; }