如何在Laravel 5.0中获取上载文件的tmp_name

时间:2015-02-11 15:11:55

标签: php symfony laravel

使用Laravel 5,我一直在尝试上传文件,并使用文件系统外观移动它,以便从Laravel使用的flysystem的功能中获益。

问题是,即使我尝试获取代表$ _FILES [file] [tmp_name]的路径,tmp_name,diskname或wathever属性,我似乎无法访问它!

我不想使用$ _FILES,因为它违反了最佳做法,如果要改变某些东西,它将不再起作用,所以我真的想要使用:

$request->file('import')

访问我导入的文件。

UploadedFile类中有一个move方法,但是我需要设置一个本地路径,这不是必须的。然后在FileSystem合同中有一个移动meethod,但它要求我不知道的本地路径,因为我无法找到UploadedFile的本地tmp_name ...

我怎么会这样做,我真的迷失了。

1 个答案:

答案 0 :(得分:9)

为什么我在发布问题后总能找到答案...

这个问题的答案很简单,使用SplFileInfo功能:

  

file方法返回的对象是。的实例   Symfony \ Component \ HttpFoundation \ File \ UploadedFile类,其中   扩展PHP SplFileInfo类并提供各种方法   用于与文件进行交互。

所以你可以做到

$request->file('import')->getPathName()

它会返回你当地的路径!