laravel - 如何将图像大小保存在数据库中?
问题描述
我需要在数据库中按 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."'> - ".$subCoursesCategory->name."</option>";
}
}
return view('layouts.manage_layouts.courses.add_course') -> with(compact('coursesCategories_dropdown'));
}
解决方案
您可以使用getSize()
方法获取上传文件的大小,然后将其存储在数据库中:
$request->file('file')->getSize();
推荐阅读
- html - 有没有办法检索网页的最终渲染像素值?
- java - Spring WebFlux 测试抛出“IllegalStateException: Failed to load ApplicationContext”异常
- java - 如何在不出现实例化异常的情况下将此超类更改为抽象类?
- node.js - 如何修复 Gatsby JS 上的错误 R10(引导超时)?
- r - 使用粘贴在 R 中循环以绘制图形
- python - 在numpy中将数组拼接在一起
- c# - WPF - ProgressBar 仅在进程完成之前更新
- angular - Angular - 在调试中上传照片,导致网站重新编译
- bots - 什么是 nbot,为什么它会抓取我的网站?
- python - Cifar-100 数据集错误 - 收到的标签值 97 超出 [0, 10) 的有效范围