首页 > 解决方案 > 图像调整大小 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)。

标签: phplaravellaravel-5

解决方案


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%。

http://image.intervention.io/api/save


推荐阅读