راکت
نوب
نوب
توسط نوب مطرح شد
3 پاسخ

خطای 403 در ckeditor در لاراول

سلام دوستان
وقتی توی متن پست در ckeditor یه تصویر میزاریم و ثبت میزنیم خطای 403 میده ولی وقتی تصویر نباشه و فقط متن باشه اوکیه
توی لاراول 7 اجرای کردم
نسخه ckeditor هم 4 هست

حالا جالب اینجاست تصویر به درستی آپلود میشه توی هاست و نمایش داده میشه توی پشنمایش متن ولی وقتی میخوایم پست به همراه تصویر را ذخیره کنیم خطای 403 میده

کسی تا حالا این مشکلو داشته ؟


ثبت پرسش جدید
علیرضا کفایتی
علیرضا کفایتی
تخصص :برنامه نویس laravel, vue.js
@alirezakefayati5 سال پیشمطرح شد
0

سلام
اگر قراره جواب سوال "کسی تا حالا این مشکلو داشته ؟" بدهم خیر این مشکل رو نداشتم ...
ولی به جهت بررسی بیشتر و حل مشکل شما بهتره کدتون رو قرار بدید


رضا جهانگیر
رضا جهانگیر
تخصص :Full-Stack Developer
@rezajahangir5 سال پیشمطرح شد
0

سلام.
باید به صورت زیر عمل کنید.
روت:

Route::post('/editor/upload', [EditorUploadController::class, 'upload'])->name('editor-upload');

کنترلر مربوطه:

class EditorUploadController extends Controller
{
    public function upload(Request $request) {
        $file = $request->file('upload');
        $base_name = pathinfo($file->getClientOriginalName(), PATHINFO_FILENAME);
        $ext = $file->getClientOriginalExtension();
        $file_name = $base_name . '_' . time() . '.' . $ext;
        $file->storeAs('images/Articles', $file_name, 'public_files');
        $function = $request->CKEditorFuncNum;
        $url = asset('images/Articles/' . $file_name);

        return response("<script>window.parent.CKEDITOR.tools.callFunction({$function}, '{$url}', 'فایل به درستی آپلود شد')</script>");
    }
}

در بلید مربوطه کد زیر رو اضافه کنید.

<script src="https://cdn.ckeditor.com/4.16.0/standard/ckeditor.js"></script>
        <script>
            CKEDITOR.replace('content', {
                language: 'fa',
                filebrowserUploadUrl: '{{ route("editor-upload", ["_token" => csrf_token()]) }}',
                filebrowserUploadMethod: 'form'
            })
</script>

در آخر به مسیر زیر برید:

config\filesystems.php

و کد زیر رو اضافه کنید.

'public_files' => [
            'driver' => 'local',
            'root' => public_path(),
            'url' => env('APP_URL').'/storage',
            'visibility' => 'public',
],

موفق باشید.


نوب
نوب
تخصص :کدنویس نوب :)
@yk5742g5 سال پیشمطرح شد
0

@rezajahangir دقیقا منم همینجوری نوشتم
توی لوکال درسته ولی توی هاست مشکل دارم

دسترسی پوشه ها هم 755 هست


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام