【发布时间】: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