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

Mat*_*lin 4 php symfony laravel

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

问题是,即使我试图获得路径,tmp_name,diskname或wathever属性代表$ _FILES [文件] [tmp_name]我似乎无法访问它!

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

$request->file('import')
Run Code Online (Sandbox Code Playgroud)

访问我导入的文件.

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

我怎么会这样做,我真的迷失在这里.

Mat*_*lin 10

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

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

文件方法返回的对象是Symfony\Component\HttpFoundation\File\UploadedFile类的一个实例,它扩展了PHP SplFileInfo类,并提供了与文件交互的各种方法.

所以你可以做到

$request->file('import')->getPathName()
Run Code Online (Sandbox Code Playgroud)

它将返回您的本地路径!