首页 > 解决方案 > 如何将图像大小保存在数据库中?

问题描述

我需要在数据库中按 kb 保存大小才能在前端查看它,这是我正在使用的控制器。我正在使用 Laravel 5.8

所以我的问题是 Laravel 是否提供任何 Facade 来处理这种情况?或者任何其他框架有更适合问题的能力是?

    public function addCourse(Request $request) {
        if ($request -> isMethod('post')) {
            $data = $request -> all();
            $course = new Courses;
            $course -> course_name = $data['course_name'];
            $course -> category_id = $data['course_sector'];
            $course -> course_code = $data['course_code'];
            if (!empty($data['course_description'])) {
                $course -> description = $data['course_description'];
            } else {
                $course -> description = "";
            }
            $course -> start_date = $data['start_date'];
            $course -> end_date = $data['end_date'];
            $course -> location = $data['course_location'];
            $course -> price = $data['course_price'];
            if ($request -> hasFile('course_image')) {
                $courseImage = Input::file('course_image');
                if ($courseImage -> isValid()) {
                    $extension = $courseImage -> getClientOriginalExtension();
                    $filename = rand(111,99999).'.'.$extension;
                    $large_image_path = "assets/manage_display/images/courses/large/".$filename;
                    $medium_image_path = "assets/manage_display/images/courses/medium/".$filename;
                    $small_image_path = "assets/manage_display/images/courses/small/".$filename;
                    Image::make($courseImage) -> save ($large_image_path);
                    Image::make($courseImage) -> resize (600,null, function ($constraint) {
                        $constraint -> aspectRatio();
                    }) -> save ($medium_image_path);
                    Image::make($courseImage) -> resize (300,null, function ($constraint) {
                        $constraint -> aspectRatio();
                    }) -> save ($small_image_path);
                    $course -> image = $filename;
                }
            }
            $course -> save();
            return redirect('/control/courses') -> with('flash_message_success', 'New Courses Added Successfully');
        }

        $coursesCategories = CoursesCategory::where(['parent_id' => 0]) -> get();
        $coursesCategories_dropdown ="<option selected disabled>Select</option>";
        foreach ($coursesCategories as $coursesCategory) {
            $coursesCategories_dropdown .= "<option class='font-weight-bold' value='".$coursesCategory -> id."'>".$coursesCategory -> name."</option>";
            $subCoursesCategories = CoursesCategory::where(['parent_id' => $coursesCategory -> id]) -> get();
            foreach ($subCoursesCategories as $subCoursesCategory) {
                $coursesCategories_dropdown .= "<option class='blockquote-footer' value='".$subCoursesCategory -> id."'>&nbsp;-&nbsp;".$subCoursesCategory->name."</option>";
            }
        }

        return view('layouts.manage_layouts.courses.add_course') -> with(compact('coursesCategories_dropdown'));
    }

标签: laravel

解决方案


您可以使用getSize()方法获取上传文件的大小,然后将其存储在数据库中:

$request->file('file')->getSize();

推荐阅读