FEATURE: add uploader into CKEditor
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
<?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
|
||||
@@ -27,12 +29,28 @@ class UploadFile extends Controller
|
||||
* @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;
|
||||
|
||||
$successfullUploads = 0;
|
||||
foreach ($files as $file) {
|
||||
$uploadedFile = $this->file->upload($file, $request);
|
||||
$successfullUploads++;
|
||||
@@ -41,13 +59,33 @@ class UploadFile extends Controller
|
||||
}
|
||||
|
||||
return redirect()
|
||||
->route('upload.overview', ['directory' => $request->directoryId])
|
||||
->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
|
||||
*
|
||||
|
||||
+1
-1
File diff suppressed because one or more lines are too long
@@ -3,6 +3,7 @@
|
||||
<script type="application/javascript">
|
||||
CKEDITOR.replace ('{{$textareaId}}', {
|
||||
uiColor: "#F5F5F5",
|
||||
filebrowserUploadUrl: '{{route('upload.postFile', ['_token' => csrf_token()])}}',
|
||||
forcePasteAsPlainText: true,
|
||||
entities: false,
|
||||
basicEntities: false,
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
<script type="text/javascript">
|
||||
window.parent.CKEDITOR.tools.callFunction ({{$funcNumber}}, "{{$fileUrl}}");
|
||||
</script>
|
||||
Reference in New Issue
Block a user