首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不支持Intervention\Image\Exception\NotSupportedException编码格式(tmp)

不支持Intervention\Image\Exception\NotSupportedException编码格式(tmp)
EN

Stack Overflow用户
提问于 2018-04-27 12:02:40
回答 7查看 15.9K关注 0票数 2

我使用的干预包与Laravel5.6,我得到的问题,每当我上传一个文件,我已经提出了错误编码格式(Tmp)是不支持的。我也启用了我的gdd2扩展。这是我用过的代码。

代码语言:javascript
复制
public function store(Request $request)
    {
        $this->validate($request , [
            'name'          => 'required|unique:categories',
            'description'   =>  'max:355',
            'image'         =>  'required|image|mimes:jpeg,bmp,png,jpg'
        ]);

        // Get Form Image
        $image = $request->file('image');
        $slug = str_slug($request->name);
        if (isset($image))
        {
            $currentDate = Carbon::now()->toDateString();
            $imageName = $slug.'-'.$currentDate.'-'.uniqid().'.'.$image->getClientOriginalExtension();
            // Check if Category Dir exists
            if (!Storage::disk('public')->exists('category'))
            {
                Storage::disk('public')->makeDirectory('category');
            }
            // Resize image for category and upload
            $categoryImage = Image::make($image)->resize(1600,479)->save();
            Storage::disk('public')->put('category/'.$imageName, $categoryImage);

            // Check if Category Slider Dir exists
            if (!Storage::disk('public')->exists('category/slider'))
            {
                Storage::disk('public')->makeDirectory('category/slider');
            }

            // Resize image for category slider and upload
            $categorySlider = Image::make($image)->resize(500,333)->save();
            Storage::disk('public')->put('category/slider/'.$imageName, $categorySlider);

        }
        else
        {
            $imageName = 'default.png';
        }

        $category = new Category();
        $category->name = $request->name;
        $category->slug = $slug;
        $category->description = $request->description;
        $category->image = $imageName;

        $category->save();
        Toastr::success('Category Saved Successfully','Success');
        return redirect()->route('admin.category.index');
    }
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2018-04-27 17:18:59

干预映像保存()方法需要一个文件名,以便它知道文件格式(jpg、png等)。来保存你的形象。

您获得错误的原因是不知道保存临时图像对象(tmp)的编码方式。

下面是一个例子

代码语言:javascript
复制
->save('my-image.jpg', 90)

还有一个可选的第二个参数来控制质量输出。以上产品质量达90%。

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

票数 2
EN

Stack Overflow用户

发布于 2018-06-08 06:32:32

您不需要在Intervention\Image类上使用Storage ()函数,因为您是通过Storage外观将文件保存到公共磁盘上的。

只需更换线路

$categoryImage = Image::make($image)->resize(1600,479)->save();

使用

$categoryImage = Image::make($image)->resize(1600,479)->stream();

以避免将图像存储到.tmp扩展下的临时文件夹中。Laravel Storage Facade将处理Intervention\Image创建的流,并将文件存储到公共磁盘。

票数 7
EN

Stack Overflow用户

发布于 2018-12-05 12:06:58

在某个地方看到这个,它对我起了作用

代码语言:javascript
复制
$image->save('foo' . $img->getClientOriginalExtension());
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50061985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档