laravel 图片流_laravel的 图片处理

秋建义
2023-12-01

form 表单必须添加 enctype="multipart/form-data"创建一个上传图片handle类 :getClientOriginalExtension() )?: 'png'; // $file -> getClientOriginalExtension(); //上传文件的后缀

$filename = $file_prefix . '_' . time() . '_' . str_random(10) . '.' .$extension;

// 如果上传的不是图片的话

if( !in_array( $extension , $this->allowed_ext )){

return false;

}

$file->move( $upload_path , $filename);

return [

'path' => "/$folder_name/$filename"

];

}

}

使用if( $request->avater){

$result = $uploader->save($request->avater , 'avater' , $user->id);

if( $result ){

$data['avater'] = $result['path'];

}

}

验证'avater' => 'mimes:jpeg,bmp,png|dimensions:min_width=100,min_height=200'

图片裁剪安装扩展包 intervention

composer require intervention/image

获取配置信息

php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravel5"

修改上传文件getClientOriginalExtension()) ?: 'png';

// 拼接文件名,加前缀是为了增加辨析度,前缀可以是相关数据模型的 ID

// 值如:1_1493521050_7BVc9v9ujP.png

$filename = $file_prefix . '_' . time() . '_' . str_random(10) . '.' . $extension;

// 如果上传的不是图片将终止操作

if ( ! in_array($extension, $this->allowed_ext)) {

return false;

}

// 将图片移动到我们的目标存储路径中

$file->move($upload_path, $filename);

// 如果限制了图片宽度,就进行裁剪

if ($max_width && $extension != 'gif') {

// 此类中封装的函数,用于裁剪图片

$this->reduceSize($upload_path . '/' . $filename, $max_width);

}

return [

'path' => config('app.url') . "/$folder_name/$filename"

];

}

public function reduceSize($file_path, $max_width)

{

// 先实例化,传参是文件的磁盘物理路径

$image = Image::make($file_path);

// 进行大小调整的操作

$image->resize($max_width, null, function ($constraint) {

// 设定宽度是 $max_width,高度等比例双方缩放

$constraint->aspectRatio();

// 防止裁图时图片尺寸变大

$constraint->upsize();

});

// 对图片修改后进行保存

$image->save();

}

}

本文由 邓尘锋 创作,采用 知识共享署名4.0 国际许可协议进行许可

本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名

最后编辑时间为: May 4, 2019 at 11:40 am

 类似资料: