/**
  * @return string
  */
 public function getRename()
 {
     $old_name = Input::get('file');
     $new_name = Input::get('new_name');
     $file_path = parent::getPath('directory');
     $thumb_path = parent::getPath('thumb');
     $old_file = $file_path . $old_name;
     if (!File::isDirectory($old_file)) {
         $extension = File::extension($old_file);
         $new_name = str_replace('.' . $extension, '', $new_name) . '.' . $extension;
     }
     $new_file = $file_path . $new_name;
     if (File::exists($new_file)) {
         return Lang::get('laravel-filemanager::lfm.error-rename');
     }
     if (File::isDirectory($old_file)) {
         File::move($old_file, $new_file);
         return 'OK';
     }
     File::move($old_file, $new_file);
     if ('Images' === $this->file_type) {
         File::move($thumb_path . $old_name, $thumb_path . $new_name);
     }
     return 'OK';
 }
 private function getFileInfos($files, $type = 'Images')
 {
     $file_info = [];
     foreach ($files as $key => $file) {
         $file_name = parent::getFileName($file)['short'];
         $file_created = filemtime($file);
         $file_size = number_format(File::size($file) / 1024, 2, ".", "");
         if ($file_size > 1024) {
             $file_size = number_format($file_size / 1024, 2, ".", "") . " Mb";
         } else {
             $file_size = $file_size . " Kb";
         }
         if ($type === 'Images') {
             $file_type = File::mimeType($file);
             $icon = '';
         } else {
             $extension = strtolower(File::extension($file_name));
             $icon_array = Config::get('lfm.file_icon_array');
             $type_array = Config::get('lfm.file_type_array');
             if (array_key_exists($extension, $icon_array)) {
                 $icon = $icon_array[$extension];
                 $file_type = $type_array[$extension];
             } else {
                 $icon = "fa-file";
                 $file_type = "File";
             }
         }
         $file_info[$key] = ['name' => $file_name, 'size' => $file_size, 'created' => $file_created, 'type' => $file_type, 'icon' => $icon];
     }
     return $file_info;
 }
 /**
  * Add a new folder
  *
  * @return mixed
  */
 public function getAddfolder()
 {
     $folder_name = Input::get('name');
     $path = parent::getPath('directory') . $folder_name;
     if (!File::exists($path)) {
         File::makeDirectory($path, $mode = 0777, true, true);
         return 'OK';
     } else {
         if (empty($folder_name)) {
             return Lang::get('laravel-filemanager::lfm.error-folder-name');
         } else {
             return Lang::get('laravel-filemanager::lfm.error-folder-exist');
         }
     }
 }
 /**
  * Crop the image (called via ajax)
  */
 public function getCropimage()
 {
     $image = Input::get('img');
     $dataX = Input::get('dataX');
     $dataY = Input::get('dataY');
     $dataHeight = Input::get('dataHeight');
     $dataWidth = Input::get('dataWidth');
     $image = parent::getTruePath($image);
     // crop image
     $tmp_img = Image::make(base_path($image));
     $tmp_img->crop($dataWidth, $dataHeight, $dataX, $dataY)->save(base_path($image));
     // make new thumbnail
     $thumb_img = Image::make(base_path($image));
     $thumb_img->fit(200, 200)->save(parent::getPath('thumb') . parent::getFileName($image)['short']);
 }
 public function performResize()
 {
     $img = Input::get('img');
     $dataX = Input::get('dataX');
     $dataY = Input::get('dataY');
     $height = Input::get('dataHeight');
     $width = Input::get('dataWidth');
     $img = parent::getTruePath($img);
     try {
         Image::make(base_path($img))->resize($width, $height)->save();
         return "OK";
     } catch (Exception $e) {
         return "width : " . $width . " height: " . $height;
         return $e;
     }
 }
 /**
  * Delete image and associated thumbnail
  *
  * @return mixed
  */
 public function getDelete()
 {
     $name_to_delete = Input::get('items');
     $file_path = parent::getPath('directory');
     $file_to_delete = $file_path . $name_to_delete;
     $thumb_to_delete = parent::getPath('thumb') . $name_to_delete;
     if (!File::exists($file_to_delete)) {
         return $file_to_delete . ' not found!';
     }
     if (File::isDirectory($file_to_delete)) {
         if (sizeof(File::files($file_to_delete)) != 0) {
             return Lang::get('laravel-filemanager::lfm.error-delete');
         }
         File::deleteDirectory($file_to_delete);
         return 'OK';
     }
     File::delete($file_to_delete);
     Event::fire(new ImageWasDeleted($file_to_delete));
     if ('Images' === $this->file_type) {
         File::delete($thumb_to_delete);
     }
     return 'OK';
 }
 /**
  * Use the file if it has been uploaded via CKEditor or TinyMCE
  *
  * @param $new_filename
  * @return string
  */
 private function useFile($new_filename)
 {
     $file = parent::getUrl() . $new_filename;
     return "<script type='text/javascript'>\n\n        function getUrlParam(paramName) {\n            var reParam = new RegExp('(?:[\\?&]|&)' + paramName + '=([^&]+)', 'i');\n            var match = window.location.search.match(reParam);\n            return ( match && match.length > 1 ) ? match[1] : null;\n        }\n\n        var funcNum = getUrlParam('CKEditorFuncNum');\n\n        var par = window.parent,\n            op = window.opener,\n            o = (par && par.CKEDITOR) ? par : ((op && op.CKEDITOR) ? op : false);\n\n        if (op) window.close();\n        if (o !== false) o.CKEDITOR.tools.callFunction(funcNum, '{$file}');\n        </script>";
 }
 /**
  * Download a file
  *
  * @return mixed
  */
 public function getDownload()
 {
     return Response::download(parent::getPath('directory') . Input::get('file'));
 }