php - 图像调整大小 laravel 不支持编码格式(tmp)
问题描述
我想调整上传图像的大小并存储在文件夹中。然后在网络中显示。我enctype="multipart/form-data"
在blade.php 中使用了表单。文件成功显示在网络中,无需调整大小。当尝试调整图像大小时出现错误
控制器.php
public function dili(Request $request)
{
$di = new diligent;
$di->jobtype = $request->jobtype;
$di->jobC = $request->jobC;
$di->details = $request->details;
$image = $request->file('image');
$path = $image->getClientOriginalName();
$destinationPath = public_path('img');
Image::make($image)->resize(300, 100)->save($image);
$a = $image->move($destinationPath, $path);
$di->image = $path;
$di->save();
$de = diligent::all();
return view('admin')->with('dw', $de);
}
错误信息
不支持编码格式 (tmp)。
解决方案
1) 在Image::make()中使用getRealPath( )
2)将图像保存在特定路径中。试试这样。
if($request->hasFile('image')) {
$image = $request->file('image');
$filename = $image->getClientOriginalName();
$image_resize = Image::make($image->getRealPath());
$image_resize->resize(300, 100);
$image_resize->save(public_path('img/' .$filename));
}
确保您安装了图像干预库。
干预图像save()方法需要一个文件名,因此它知道保存图像的文件格式(jpg、png 等)。
您收到错误的原因是它不知道将临时图像对象(tmp)保存在什么编码中。
这是一个例子
->save('my-image.jpg', 90)
还有一个可选的第二个参数来控制质量输出。以上输出质量为 90%。
推荐阅读
- vba - 如何将触发文件夹创建的邮件插入该文件夹?
- go - 无法获取当前窗口标题
- fortran - 尝试打开文本文件时,Fortran 代码产生运行时错误“不支持操作”
- c# - 应用 TreeView 过滤器后 DataGridView 中出现多余的行
- php - 使用不同的变量加载相同的视图两次
- pyspark - 如何读取 pyspark 提取的一个文件中的多个嵌套 json 对象到 Azure databricks 中的数据框?
- c++ - 声明一个全局变量而不在 C++ 中初始化
- c# - HttpPostAttribute 中 Name 参数的作用是什么
- c# - .NET Core - 库中未包含/编译的图像资源
- python - 如何仅在事件中心接收最近的数据