【问题标题】:Laravel 5 - Intervention Image SavingLaravel 5 - 干预图像保存
【发布时间】:2016-01-11 09:14:11
【问题描述】:

我正在尝试使用 Laravel 5 和干预以表单创建工作图像上传。

    public function store()
    {
    $input = Request::all();
    Project::create($input);

    if (Input::hasFile('image'))
    {
        $file = Input::file('image');
        $file->move('uploads', $file->getClientOriginalName());

        $image = Image::make(sprintf('uploads/%s', $file->getClientOriginalName()))->resize(120, 120)->save();
    }

    return $file;

   // return redirect('projects');
}

它正在复制指定文件夹中的图像,但是当我返回 $file 时,它​​会在

行中给我一些东西

/tmp/phpoMwrrD

而不是文件名。 我一直在查看干预文档,但找不到我做错了什么。

引用文档;

在 Laravel 中处理图片上传

在 Laravel 应用程序中,也可以传递上传的文件 直接到make方法。

在 Laravel 中通过文件上传创建图像

// 调整上传文件的大小 Image::make(Input::file('photo'))->resize(300, 200)->save('foo.jpg');

提前致谢。

【问题讨论】:

  • 你在哪里返回$file?为什么不使用$image?
  • @GladToHelp 用整个函数更新了 OP。我可以使用 $image,但在编写函数的过程中开始使用 $file 并且没有改变。它不应该改变函数的结果。
  • 控制器尝试将$file 对象转换为字符串,这就是您看到临时名称/路径的原因。你应该从$file->getClientOriginalName()获取文件名
  • 这不是在做什么吗'$file->getClientOriginalName()))->resize(120, 120)->save();'还是我完全错了?它正在调整文件大小并将 $file->getClientOriginalName() 保存到数据库,对吗? sprintf 正在返回一个格式化的字符串,这可能是问题所在吗?我一直使用phpgang.com/… 作为这个教程。
  • 您的抱怨是:“$file 它在​​ /tmp/phpoMwrrD 的行中给了我一些东西,而不是文件名。”如果你想要文件名,从字符串中获取,不要输出整个 $file 对象,因为 Laravel 会尝试调用它的 toString() 方法,然后输出临时文件/路径。也许您想实现其他目标?

标签: php laravel-5 intervention


【解决方案1】:

感谢@GladToHelp 解决了这个问题。二手

`$imageN = $file->getClientOriginalName();`

检索文件名。

【讨论】:

    【解决方案2】:

    试试这个

       if (Input::hasFile('image'))
    {
        $file = Input::file('image');
    
        $image = Image::make($file)->resize(120, 120)->save('uploads/'.$file->getClientOriginalName());
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-19
      • 1970-01-01
      • 2018-01-11
      • 1970-01-01
      • 1970-01-01
      • 2015-10-31
      • 1970-01-01
      • 2016-01-26
      相关资源
      最近更新 更多