在 Laravel7 中同时存储调整大小的照片和发送电子邮件

Store resized photo and send email same time in Laravel7

我正在研究联系方式。 Laravel 框架是 7.15.0 它工作正常。 我有一个问题,我想添加图像文件附加功能。 我目前是这样写的。

blade file

<div class="form-group">
    <label for="inputFile">File input</label>
    <input type="file" class="form-control-file" id="inputfile">
</div>

Controller

\Mail::send('mail', array(
    'name' => $request->get('name'),
    'message' => $request->get('message'),
    'inputfile' => $request->get('inputfile'),
), function($message) use ($request){
    $message->from($request->email);
    $message->to('123@testmail.com', 'mail-recive')->subject($request->get('mail-recive'));
});

此代码将数据存储在 MySQL 并同时发送电子邮件。

你能教我调整大小的功能吗? 我想将最大尺寸设置为 2000 x 2000 像素。 你能教我正确的代码吗?

如果您只是想限制用户上传的图片不能超过特定大小,例如 3mb,您可以使用 laravel validation and if you're looking for image dimensions resizing, there is an awesome package Intervention 来实现。它适用于 laravel。使用此软件包,您不仅可以调整图像大小。

这是一个示例,您可以如何调整图像大小:

if($request->hasFile('img')){
    $img = Image::make($request->img);
    
    $img->resize(500, 500);

    $img->save('Your/Public/Path/image.jpg');
}

您可以在 official documentation 中轻松找到如何安装和使用此软件包。

您可以使用 laravel medialialibrary 处理图像等媒体 您可以使用此 link medialibrary doc