102 lines
2.6 KiB
PHP
102 lines
2.6 KiB
PHP
<?php
|
|
namespace App\Http\Controllers\Admin\FileManager;
|
|
|
|
use App\Helpers\Template;
|
|
use App\Http\Controllers\Admin\Controller;
|
|
use App\Http\Requests\Request;
|
|
use App\Models\File;
|
|
use Illuminate\Support\Facades\Input;
|
|
use Symfony\Component\HttpFoundation\File\Exception\FileException;
|
|
|
|
class UploadFile extends Controller
|
|
{
|
|
/**
|
|
* @var File
|
|
*/
|
|
private $file;
|
|
|
|
function __construct(File $file)
|
|
{
|
|
parent::__construct();
|
|
$this->file = $file;
|
|
}
|
|
|
|
/**
|
|
* Uploads any file
|
|
*
|
|
* @param Request $request
|
|
*
|
|
* @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse
|
|
*/
|
|
public function postFile(Request $request)
|
|
{
|
|
if (Input::get('CKEditor')) {
|
|
return $this->ckEditorUpload($request);
|
|
} else {
|
|
return $this->internalUpload($request);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Upload file using internal file uploader
|
|
*
|
|
* @param Request $request
|
|
*
|
|
* @return \Illuminate\Http\RedirectResponse
|
|
*/
|
|
private function internalUpload(Request $request)
|
|
{
|
|
try {
|
|
$uploadedFiles = [];
|
|
$files = $request->all()['files'];
|
|
|
|
$successfullUploads = 0;
|
|
foreach ($files as $file) {
|
|
$uploadedFile = $this->file->upload($file, $request);
|
|
$successfullUploads++;
|
|
|
|
$uploadedFiles[] = $uploadedFile;
|
|
}
|
|
|
|
return redirect()
|
|
->back()
|
|
->with('success', trans_choice('admin/fileManager.uploadSuccessfull', $successfullUploads));
|
|
} catch (FileException $e) {
|
|
return $this->invalidUpload('invalidFile');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Upload file using CKEditor
|
|
*
|
|
* @param Request $request
|
|
*
|
|
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
|
*/
|
|
private function ckEditorUpload(Request $request)
|
|
{
|
|
$file = $request->file('upload');
|
|
|
|
$uploadedFile = $this->file->upload($file, $request);
|
|
|
|
return view('admin.snippets.ckEditorUploaded', [
|
|
'ckEditor' => Input::get('CKEditor'),
|
|
'funcNumber' => Input::get('CKEditorFuncNum'),
|
|
'fileUrl' => Template::upload($uploadedFile['filename'])
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* Send message and redirect to upload.overview when upload failed
|
|
*
|
|
* @param $message
|
|
*
|
|
* @return \Illuminate\Http\RedirectResponse
|
|
*/
|
|
protected function invalidUpload($message)
|
|
{
|
|
return redirect()
|
|
->route('upload.overview')
|
|
->with('error', trans('admin/fileManager.' . $message));
|
|
}
|
|
} |