laravel 5.3上传文件

时间:2016-10-14 10:23:01

标签: php laravel laravel-5.3

我正在使用laravel 5.3,我想将文件上传到目录。我一直在关注上传文件的laravel文档,如下代码:

public function store(Request $request)
{
    $path = $request->attachment->store('attachment');
}

但是收到错误

  

调用字符串

上的成员函数store()

之前在laravel 5.2上,我已经使用此代码上传文件及其工作

if ($request->hasFile('attachment')) {
    $destination = 'upload/attachment';
    $file = $request->file('attachment');
    $file->move($destination, $file->getClientOriginalName());
}

$filelocation = $destination. "/" .$file->getClientOriginalName();

但在laravel 5.3中,它不起作用,我收到错误

  

未定义的变量:目的地

你可以帮助我的代码出错吗?

2 个答案:

答案 0 :(得分:1)

public function store(Request $request)
{
    $path = $request->attachment->store('attachment');
}

我不认为$request->attachment能做你想做的事。将该行更改为:

$request->file('attachment')->store('/your/destination/path')
if($request->hasFile('attachment')){
    $destination = 'upload/attachment';
    $file = $request->file('attachment');
    $file->move($destination, $file->getClientOriginalName());
}

$filelocation = $destination. "/" .$file->getClientOriginalName();

$request->hasFile('attachment')false时,$destination将不会被声明。所以当它到达$filelocation行时,你得到一个未定义的变量。

答案 1 :(得分:1)

在Larave 5.3中,你可以使用这样的简单上传文件:

$request->file('file')->storePublicly($folderSrc);

这会将您的文件保存到storage / app / public / you-folder-src