fixed category icon uploader

This commit is contained in:
vedatakd 2021-09-03 11:56:45 +03:00
parent 4bbd7b85ea
commit 38e0ce55c2

View File

@ -1,13 +1,12 @@
<?php namespace Visiosoft\CatsModule\Http\Controller\Admin; <?php namespace Visiosoft\CatsModule\Http\Controller\Admin;
use Anomaly\FilesModule\File\Contract\FileRepositoryInterface; use Anomaly\FilesModule\File\Contract\FileRepositoryInterface;
use Anomaly\FilesModule\File\FileSanitizer;
use Anomaly\FilesModule\File\FileUploader; use Anomaly\FilesModule\File\FileUploader;
use Anomaly\FilesModule\Folder\Contract\FolderRepositoryInterface; use Anomaly\FilesModule\Folder\Contract\FolderRepositoryInterface;
use Anomaly\Streams\Platform\Model\Cats\CatsCategoryEntryTranslationsModel; use Anomaly\Streams\Platform\Model\Cats\CatsCategoryEntryTranslationsModel;
use Anomaly\Streams\Platform\Ui\Form\FormBuilder; use Anomaly\Streams\Platform\Ui\Form\FormBuilder;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage; use Illuminate\Http\UploadedFile;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use League\Flysystem\MountManager; use League\Flysystem\MountManager;
use Visiosoft\CatsModule\Category\CategoryExport; use Visiosoft\CatsModule\Category\CategoryExport;
@ -19,7 +18,6 @@ use Visiosoft\CatsModule\Category\Contract\CategoryRepositoryInterface;
use Visiosoft\CatsModule\Category\Form\CategoryFormBuilder; use Visiosoft\CatsModule\Category\Form\CategoryFormBuilder;
use Visiosoft\CatsModule\Category\Table\CategoryTableBuilder; use Visiosoft\CatsModule\Category\Table\CategoryTableBuilder;
use Anomaly\Streams\Platform\Http\Controller\AdminController; use Anomaly\Streams\Platform\Http\Controller\AdminController;
use Visiosoft\AdvsModule\Adv\Contract\AdvRepositoryInterface;
use Visiosoft\CatsModule\Category\Traits\DeleteCategory; use Visiosoft\CatsModule\Category\Traits\DeleteCategory;
use Maatwebsite\Excel\Facades\Excel; use Maatwebsite\Excel\Facades\Excel;
@ -250,35 +248,39 @@ class CategoryController extends AdminController
public function createIconFile($category_id) public function createIconFile($category_id)
{ {
$fileRepository = app(FileRepositoryInterface::class);
$folderRepository = app(FolderRepositoryInterface::class); $folderRepository = app(FolderRepositoryInterface::class);
$manager = app(MountManager::class); $uploader = app(FileUploader::class);
if ($file = $this->request->file('icon') and $folder = $folderRepository->findBySlug('category_icon') and $category = $this->categoryRepository->find($category_id)) {
$type = explode('.', $file->getClientOriginalName()); if ($request_file = $this->request->file('icon') and $folder = $folderRepository->findBySlug('category_icon') and $category = $this->categoryRepository->find($category_id)) {
$type = explode('.', $request_file->getClientOriginalName());
$type = end($type); $type = end($type);
$file_location = $folder->getDisk()->getSlug() . '://' . $folder->getSlug() . '/' . FileSanitizer::clean($category_id . "." . $type); $filename = $category_id . "." . $type;
$file_url = '/files/' . $folder->getSlug() . '/' . FileSanitizer::clean($category_id . "." . $type); if ($file = $fileRepository->findByNameAndFolder($filename, $folder)) {
$file->forceDelete();
if (Storage::exists($file_location)) {
Storage::delete($file_location);
} }
try { try {
$manager->put($file_location, file_get_contents($file->getRealPath())); $file = new UploadedFile($request_file->getPathname(),
$filename,
$request_file->getClientMimeType(),
$request_file->getError());
$category->setCategoryIconUrl($file_url); $file = $uploader->upload($file, $folder);
$category->setCategoryIconUrl($file->make()->url());
} catch (\Exception $exception) { } catch (\Exception $exception) {
$this->messages->error([$exception->getMessage()]); $this->messages->error($exception->getMessage());
} }
} }
} }
public function import(FormBuilder $builder, FileRepositoryInterface $fileRepository){ public function import(FormBuilder $builder, FileRepositoryInterface $fileRepository)
{
if (request()->action == "save" and $file = $fileRepository->find(request()->file)) { if (request()->action == "save" and $file = $fileRepository->find(request()->file)) {
if ($file->extension === 'xls' || $file->extension === 'xlsx') { if ($file->extension === 'xls' || $file->extension === 'xlsx') {
@ -309,7 +311,8 @@ class CategoryController extends AdminController
return $builder->render(); return $builder->render();
} }
public function export(){ public function export()
{
return Excel::download(new CategoryExport(), 'cats-' . time() . '.xlsx'); return Excel::download(new CategoryExport(), 'cats-' . time() . '.xlsx');
} }
} }