使用Laravel 5,我一直在尝试上传文件,并使用文件系统外观移动它,以便从Laravel使用的flysystem的功能中获益。
问题是,即使我尝试获取代表$ _FILES [file] [tmp_name]的路径,tmp_name,diskname或wathever属性,我似乎无法访问它!
我不想使用$ _FILES,因为它违反了最佳做法,如果要改变某些东西,它将不再起作用,所以我真的想要使用:
$request->file('import')
访问我导入的文件。
UploadedFile类中有一个move方法,但是我需要设置一个本地路径,这不是必须的。然后在FileSystem合同中有一个移动meethod,但它要求我不知道的本地路径,因为我无法找到UploadedFile的本地tmp_name ...
我怎么会这样做,我真的迷失了。
答案 0 :(得分:9)
为什么我在发布问题后总能找到答案...
这个问题的答案很简单,使用SplFileInfo功能:
file方法返回的对象是。的实例 Symfony \ Component \ HttpFoundation \ File \ UploadedFile类,其中 扩展PHP SplFileInfo类并提供各种方法 用于与文件进行交互。
所以你可以做到
$request->file('import')->getPathName()
它会返回你当地的路径!