Exemple #1
0
 /**
  *  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;
 }
Exemple #2
0
 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;
 }