正在上传excel文件Laravel

时间:2017-01-18 08:20:23

标签: php excel laravel

我尝试在Laravel中上传带有表单的excel文件,但我遇到了问题: 在非对象

上调用成员函数存储()

这是我的代码:

{!! Form::open(['route' => 'choixcol']) !!}
  <div class="col-md-4">
     {!! Form::file('data', '', ['id' =>  'file', 'class' =>  'form-control']) !!}
  </div>
  <div class="col-md-8">
     {!! Form::submit("Utiliser ce fichier", array('class' => 'btn btn-info')) !!}
  </div>

{!! Form::close() !!} 

我的控制器中的功能:

public function upload(Request $request) {
    $path = $request->file('data')->store('data');
    return view('mesures.index');
}

请问如何解决?

编辑:

在我的$ request中我有:

Request {#37 ▼
  #json: null
  #sessionStore: null
  #userResolver: Closure {#231 ▶}
  #routeResolver: Closure {#248 ▶}
  +attributes: ParameterBag {#39 ▶}
  +request: ParameterBag {#38 ▼
  #parameters: array:2 [▼
   "_token" => "6IPVFkzu8o2jH244y0BwJEqKDqfWrt5pKwMS7Pls"
   "data" => "99081D_Pesee2016.xlsx"
  ]
}
+query: ParameterBag {#45 ▶}
+server: ServerBag {#42 ▶}
+files: FileBag {#41 ▶}
+cookies: ParameterBag {#40 ▶}
+headers: HeaderBag {#43 ▶}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/mesures/choix"
#requestUri: "/mesures/choix"
#baseUrl: ""
#basePath: null
#method: "POST"
#format: null
#session: Store {#205 ▶}
#locale: null
#defaultLocale: "en"
}

我想我只是直接获取文件的名称而不是文件...

2 个答案:

答案 0 :(得分:0)

错误是在这种情况下file('data')不是对象。

我会将$request数组记录为Log::debug($request);,然后查看您有权访问的内容。

https://laravel.com/docs/5.3/requests#storing-uploaded-files

答案 1 :(得分:0)

我找到了解决方案,这很简单:我忘了将'files'=&gt;设置为我的表单!